• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VisualStudio2005C++の某参考書のプログラムでエラー)

VisualStudio2005C++の参考書のプログラムでエラー

このQ&Aのポイント
  • VisualStudio2005でC++の勉強中に、プログラムのエラーが発生しました。
  • 参考書通りに書いたつもりの「Hello, Visual C++」の表示プログラムで、エラーが出ています。
  • エラーメッセージは「error C2664: 'BOOL CDC::TextOutW(int,int,const CString &)' : 3 番目の引数を 'const char [19]' から 'const CString &' に変換できません」となっています。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

VS2005になって 作成したソリューション(プロジェクト)の規定の文字セットが Unicodeになっています CDC::TextOutなど 文字列の引数を扱う場合 _Tマクロか、_TEXTマクロを使用するようにしましょう void ChelloVCView::OnDraw(CDC* pDC) { ChelloVCDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: この場所にネイティブ データ用の描画コードを追加します。 // この部分の 文字定数を _TEXTで括ります pDC->TextOut(0, 0, _TEXT("Hellow, Visual C++")); } もし _TEXTが未定義だといわれるようなら ファイルの先頭付近の #include "afxstd.h" の次の行に #include <TCHAR.H> を追加してください

TaruSimba
質問者

お礼

redfox63様へ 早速の回答ありがとうございました。 うまく走ることができました。 今、すごい感激です。 生まれて初めてプログラムを走らせたなんて♪ _Tマクロ、_TEXTマクロ ってなんですか・・・  今持ってる参考書は 「明快入門Visual C++2005 ビギナー編」 なんですが、 そこに書いている通りに打ち込んでエラーがでたのです。 この本って、あまりよくないのでしょうか。 _Tマクロ、_TEXTマクロの事かいてないのですが・・・ 質問攻めですいません。 とにかく、 走ったので、すごく嬉しいです。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

MicrosoftのOSで使用される文字コード体系が2種類あることはご存知でしょうか? DOSやWin3.1、Win9x系で主に使用されてきた文字コード ANSIとかSBCS,MBCSといったコード体系と WinNT,Win2000,WinXP,VISTAなどで用いられる Unicode この2つのコード体系の差を吸収するためのマクロということになります 下記URLなどを一読してみましょう

参考URL:
http://msdn.microsoft.com/library/ja/vccore/html/_core_Generic.2d.Text_Mappings_in_TCHAR..H.asp?frame=true
TaruSimba
質問者

お礼

redfox63様へ うーん。難しいですね。 といいますか、 初めてなので、 何が何だかという感じです。 とりあえず、コード体系の差の吸収ということは、 覚えました。 リンクありがとうございました。 でも、あまりよくわかりません。 どんどん勉強して、 分かるようになりたいと思います。 どうもありがとうございました。