「Visual Studio」カテゴリーアーカイブ

error C2664 の対処

Visual Studio 2005 (VS2005) で新規にC++のプロジェクトを立ち上げて、コーディング、ビルドを行うとerror C2664がでる。例えば、error C2664: 'InternetOpenW' : 1 番目の引数を 'const char [29]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
こんな感じ。

根本はUnicode文字の扱いがVS 2005で変わったらしく、TSCHARなる変数型ができて話がややこしくなったらしい。で、その対処方法はマイクロソフトの意向とは逆行するようだけど、プロジェクトのプロパティ(プロジェクト上で右クリックして「プロパティ」を選択する)の[構成プロパティ]−[全般]−[文字セット]:「Unicode文字セットを使用する」→「マルチ バイト文字セットを使用する」に変更する。Unicodeもマルチバイト文字セットだと思うんだけど、まあ、ここはそんな細かい話は抜きにして。。。