Ann*_*nie 4 c++ types type-conversion
我在MSVC2008 MFC中遇到此问题.我正在使用unicode.我有一个函数原型:
MyFunction(const char *)
Run Code Online (Sandbox Code Playgroud)
我在说它:
MyfunFunction(LPCTSTR wChar).
Run Code Online (Sandbox Code Playgroud)
错误:无法将参数1从"LPCTSTR"转换为"const char*"
怎么解决?
由于您使用的是MFC,因此您可以轻松地让CString自动转换char为TCHAR:
MyFunction(CString(wChar));
Run Code Online (Sandbox Code Playgroud)
无论您的原始字符串是基于char还是wchar_t基于,都可以
编辑:看来我的原始答案与你的要求相反.轻松修复:
MyFunction(CStringA(wChar));
Run Code Online (Sandbox Code Playgroud)
CStringA是一个CString特别包含char字符的版本,而不是TCHAR.还有一个CStringW持有wchar_t.
LPCTSTR是一个指向const TCHARand TCHARis 的指针,WCHAR并且WCHAR很可能是wchar_t。const wchar_t*如果可以的话,让你的函数采取,或者手动创建一个const char*缓冲区,复制内容,然后传递它。