我从 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;

最佳答案

您对 WideCharToMultiByte 的调用看起来是正确的,前提是 ch
足够大的缓冲区。但是,在之后,您要分配
缓冲区( ch )到字符串(或用它来构造一个字符串),而不是pe32.szExeFile

关于c++ - 将 WCHAR[260] 转换为 std::string,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10204145/

10-11 16:55