ページ 11

質問なのですが

Posted: 2008年11月07日(金) 19:59
by rion
「猫でもわかるゲームプログラミング」という本を読んで勉強しているものですが、サンプルプログラムを書いてできるかどうか試してみたところ、以下のようなエラーが出ました。 

*****\win01.cpp(58) : error C2440: '=' : 'LPCSTR' から 'LPCWSTR' に変換できません。
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
*****\win01.cpp(85) : error C2664: 'CreateWindowExW' : 2 番目の引数を 'char [6]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

記述が間違ったのかと思い、サンプルをそのままコピーしてビルドしてみましたが、やはり同様なエラーが発生しました。どのようにすれば解決できるのでしょうか?
ソースを添付しましたので、ぜひご覧になって、ご返答お願いします。
(osはwindowsxp、環境はvc+2005です。)

Re:質問なのですが

Posted: 2008年11月07日(金) 20:07
by Mist
VS2005から型チェックが非常に厳しくなったことが原因です。
wc.lpszClassName = (LPCTSTR)szClassName;
というようにキャストすればよいだけです。

猫さんのVS2005サンプルページです。
http://www.kumei.ne.jp/c_lang/net2005/sample.htm

Re:質問なのですが

Posted: 2008年11月07日(金) 20:11
by 御津凪
もしかしたらソースコードは ANSI 用で、プロジェクトは UNICODE 用でビルドしているせいなのでは?

プロジェクトのプロパティで、
UNICODE 文字の使用をオフにすればいいと思いますよ。

Re:質問なのですが

Posted: 2008年11月07日(金) 20:23
by rion
上記のどちらの方法でも試してみたところ、両方ともで解決することができました。
ご返答たいへんありがとうございました。