2

次のコード

string exePath() {
string path;
char buffer[MAX_PATH];
cout << "reading path\n";
GetModuleFileName(NULL, buffer, MAX_PATH);
string::size_type pos = string(buffer).find_last_of("\\/");
path = string(buffer).substr(0, pos)/*+"\\system.exe"*/;
return path;

}

VisualStudio(バッファ)の2番目のパラメータでエラーが発生します:

型「char *」引数は、型パラメーター「LPWSTR」と互換性がありません

(イタリア語からの翻訳、私はイタリア語で vs を持っています。理解していただければ幸いです) 2 番目の引数で Char を LPWSTR に変換できません

このコードは、code::blocks と dev c++ で正常にコンパイルされますが、vs ではそうではありません

4

2 に答える 2

0

これは関連していると思いますが、どうすれば wchar_t 値をコンソールに出力できますか? . Lこのように文字列をワイド文字にするために、文字列に接頭辞を付ける必要もあります

std::wcout << L"reading path" << std::endl;

これは、アプリケーションが Windows のみの場合はうまく機能しますが、TEXT("reading path")それ以外の場合はマクロ スタイルを使用する必要があります。他のプラットフォームではデフォルトで存在しませんが、簡単に追加できるからです。

于 2016-03-31T19:01:09.260 に答える