C++ 从 LPCTSTR 转换为 const char *
我在 MSVC2008 MFC 中有这个问题.我正在使用 unicode.我有一个函数原型:
MyFunction(const char *)
我称之为:
MyfunFunction(LPCTSTR wChar).
<块引用>
错误:无法将参数 1 从LPCTSTR"转换为const char *"
如何解决?
解决方案由于您使用的是 MFC,您可以轻松地让 CString 进行从 char
到 TCHAR
的自动转换>:
MyFunction(CString(wChar));
无论您的原始字符串是基于 char
还是基于 wchar_t
,这都有效.
看来我最初的回答与您所要求的相反.轻松修复:
MyFunction(CStringA(wChar));
CStringA
是 CString
的一个版本,它专门包含 char
字符,而不是 TCHAR
.还有一个 CStringW
保存 wchar_t
.
I have this problem in MSVC2008 MFC. I′m using unicode. I have a function prototype:
MyFunction(const char *)
and I'm calling it:
MyfunFunction(LPCTSTR wChar).
error:Cannot Convert Parameter 1 From 'LPCTSTR' to 'const char *'
How to resolve it?
解决方案Since you're using MFC, you can easily let CString do an automatic conversion from char
to TCHAR
:
MyFunction(CString(wChar));
This works whether your original string is char
or wchar_t
based.
Edit: It seems my original answer was opposite of what you asked for. Easily fixed:
MyFunction(CStringA(wChar));
CStringA
is a version of CString
that specifically contains char
characters, not TCHAR
. There's also a CStringW
which holds wchar_t
.
相关文章