通知
すべてクリア
Topic starter
2006年3月1日 1:02 PM
VC++6.0対応の入門書に記載されているプログラムを2005上でビルドすると、: error
C2664: 'lstrcpyW' : 1 番目の引数を 'char [80]' から 'LPWSTR' に変換できません。
(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キ
ャストまたは関数スタイルのキャストが必要です。
となるのはなぜなんでしょうか?長文すみません。
2006年3月1日 1:40 PM
VC2005では文字セットがデフォルトで Unicode になります。
一方VC6 は MSBC(Shift_JIS)になっています。
どのように対処すべきかは、こちらのスレを参考にしてみてください。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=26318&forum=7
2006年3月1日 1:44 PM
2005の設定が、UNICODEを使っているからです。
VC6の入門書はおそらく char 型ですが、
UNICODE を使う場合は通常 wchar_t という型を使います。
# wchar_t も C++ の(新しい)型です。
Windows の場合、両者に対応するため、TCHAR というマクロ定義を利用することもあります。
Topic starter
2006年3月1日 9:38 PM
即回答大変ありがとうございました!問題なく動きました。
これで心置きなく入門書を進めることができます。
またよろしくお願いします!!