こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

GetDlgItemTextについて

現在、VisualStudio201にて(ダイアログベースの)プログラムを作っていますが、
GetDlgItemText()が期待通りにならず行き詰ってしまいました。

char wordx[256];
GetDlgItemText(IDC_EDIT_NO1, (LPTSTR)wordx, 256);

上記のような記述をしていて、エディトボックスには"ABC"を入力しているので、
wordxには、"ABC"が入ることを期待しています。
結果は、16進で表すと、0x41, 0, 0x42, 0, 0x43, 0
となってしまいます。もし、原因がわかればお教えください。

投稿日時 - 2012-10-08 00:10:26

QNo.7737477

困ってます

質問者が選んだベストアンサー

とりあえずその場凌ぎの方法をお教えします。
プロジェクトのプロパティから「全般」ページの中の「文字セット」を、「Unicode文字セット」から「マルチバイト文字セット」に変更してください。

しかし問題の本質を理解していないと、またすぐに似たような問題にぶち当たるでしょう。
とりあえず「LPTSTR」で検索して勉強してください。

投稿日時 - 2012-10-08 17:34:11

お礼

早速のご回答ありがとうございます。
文字セットの変更で文字列が正しく設定されることを確認しました。
ご指摘通り、勉強不足で、お手数をおかけしました。

投稿日時 - 2012-10-08 18:03:52

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

なぜキャストしているんですか?

投稿日時 - 2012-10-08 01:24:29

補足

初心者で申し訳ありません。
よく解らずキャストしていました。
そうしないとコンパイルが通らなかったので・・・
なお、以前は機能していたのですが、
おそらくWindows7にしてからのように思います。

投稿日時 - 2012-10-08 16:49:47

あなたにオススメの質問