重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VisualC++2005において、プロジェクト(ソリューション)を以下のように構成した場合に表記のエラーが出ます。
解決方法ご存知でしたら教えて下さい。
(MFC初心者です)

【構成】
・新規のソリューションにMFCのMDI形式のプロジェクトを作成
・さらにMFC拡張DLLのプロジェクトを作成する
(1つのソリューションに2つのプロジェクトを同居させる)

・MDIのプロジェクトは特に何もしない
・MFC拡張DLL側でダイアログを1ヶ作成する
・作成したダイアログのクラスを作成
・OnInitDialog()を作成
・作成したダイアログにあるボタンにメンバ変数(例:m_Button)を割り当てる
・OnInitDialog()内でm_Button.SetWindowText("HOGE");と記述
・コンパイルするとエラーが出る

【エラー】
error C2039: 'SetWindowTextA' : 'CButton' のメンバではありません。
1> c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(2990) : 'CButton' の宣言を確認してください。


特に変わったことをしているわけではありません。
さらに「m_Button.」と入力した時点で入力補助機能が働くので
m_Buttonはちゃんと認識されていると思います。
'CButton' 固有のメンバ関数の使用には問題ありませんが、
継承されているメンバ関数はことごとくNGです。

A 回答 (1件)

m_Button.SetWindowText(L"HOGE");


または
m_Button.SetWindowText(_T("HOGE"));
としたらどうです?

これで通るなら、UNICODEモードでコンパイルされています。
    • good
    • 0
この回答へのお礼

解決しました!
教えて頂いた通りのコードでコンパイルが通りました。
なので、文字セットの設定を「UNICODEを使用」から「マルチバイトを使用」に変更し通常通りコンパイルが出来ました。
プロジェクトウィザードでDLLの作成をしようとした時は後から設定を変えなくてはいけないのですね。
勉強になりました。
ありがとうございます。

お礼日時:2006/06/28 08:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!