c – 将WCHAR [260]转换为std :: string

我在Windows上从(PROCESSENTRY32)pe32.szExeFile获得了WCHAR [MAX_PATH].以下不起作用:

std::string s;
s = pe32.szExeFile; // compile error. cast (const char*) doesnt work either

std::string s;
char DefChar = ' ';
WideCharToMultiByte(CP_ACP,0,pe32.szExeFile,-1, ch,260,&DefChar, NULL);
s = pe32.szExeFile;
最佳答案
如果ch是a,你对WideCharToMultiByte的调用看起来是正确的
足够大的缓冲区.然而,之后,你要分配
缓冲区(ch)到字符串(或用它来构造一个字符串),而不是
pe32.szExeFile.

转载注明原文:c – 将WCHAR [260]转换为std :: string - 代码日志