有什么方法吗?
我的电脑是AMD64。
::std::string str;
BOOL loadU(const wchar_t* lpszPathName, int flag = 0);
当我使用时:
loadU(&str);
VS2005编译器说:
Error 7 error C2664:: cannot convert parameter 1 from 'std::string *__w64 ' to 'const wchar_t *'
我该怎么做?
首先将其转换为 std::wstring:
std::wstring widestr = std::wstring(str.begin(), str.end());
然后获取C字符串:
const wchar_t* widecstr = widestr.c_str();
这仅适用于 ASCII 字符串,但如果底层字符串是 UTF-8 编码的,则它将不起作用。使用 MultiByteToWideChar() 等转换例程可确保正确处理这种情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)