• ベストアンサー

GetDlgItemTextについて

現在、VisualStudio201にて(ダイアログベースの)プログラムを作っていますが、 GetDlgItemText()が期待通りにならず行き詰ってしまいました。 char wordx[256]; GetDlgItemText(IDC_EDIT_NO1, (LPTSTR)wordx, 256); 上記のような記述をしていて、エディトボックスには"ABC"を入力しているので、 wordxには、"ABC"が入ることを期待しています。 結果は、16進で表すと、0x41, 0, 0x42, 0, 0x43, 0 となってしまいます。もし、原因がわかればお教えください。

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

  • ベストアンサー
  • myuki1232
  • ベストアンサー率57% (97/170)
回答No.2

とりあえずその場凌ぎの方法をお教えします。 プロジェクトのプロパティから「全般」ページの中の「文字セット」を、「Unicode文字セット」から「マルチバイト文字セット」に変更してください。 しかし問題の本質を理解していないと、またすぐに似たような問題にぶち当たるでしょう。 とりあえず「LPTSTR」で検索して勉強してください。

f16falcon2011
質問者

お礼

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

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

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

f16falcon2011
質問者

補足

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

関連するQ&A