私はFormat()を使用する必要のあるプログラムを持っています。文字列リテラルとintをCString変数に結合する関数。私はこれを行うにはいくつかの異なる方法を試してみましたが、それらのコードはここにある:C++でタイプを変換する際のエラー
// declare variables used
CString _CString;
int _int;
// try to use format function with string literal
_CString.Format("text",_int);
// try to use format function with C-Style cast
_CString.Format((wchar_t)"text",_int);
// try to use format function with static_cast
_CString.Format(static_cast<wchar_t>("text"),_int);
最初のものは、エラーC2664が返されます:「無効ATL :: CStringT ::フォーマット(定数はwchar_t *、...)」を:パラメータ1を 'const char [33]'から 'const wchar_t *'に変換できません。
2番目の文字はエラーではありませんが、漢字で表示されます。
3つ目は、エラーC2440を返す: 'static_castを':* Sをwchar_tにCStringsを変換するための 'のwchar_t'
任意のアイデア 'へのconst char型[33]' から変換することはできませんか?
おかげ
これはスーパーニツキですが、技術的に言えば、名前にアンダースコアと大文字の名前を付けることは想定されていません。これらの名前は、どのような使い方(恣意性の悪いマクロを含む)のための実装によって予約されています。ちょうど私がFYIとしてこれを言及したいと思った。 – templatetypedef