调用_tcsstr并分配给wchar_t*时出现编译错误

Sti*_*imy 0 c++ visual-studio-2008

我在尝试构建以前工作的C++项目时遇到了编译错误.

代码如下:

const wchar_t* pdest;
pdest = _tcsstr(ConnStr, Name);
Run Code Online (Sandbox Code Playgroud)

错误如下:错误10错误C2440:'=':无法从'const char*'转换为'const wchar_t

我正在使用Visual Studio 2008.错误消息很好地解释了问题,但我知道这个程序用于编译,我做错了什么?

cta*_*cke 7

你的代码很危险._tcsstr是一个TCHAR宏,因此它的定义可以根据是否定义UNICODE而改变.wchar_t是固定的.您看到的错误是由于这个确切的问题 - 环境使用_tcsstr的单字节版本(可能因为未定义UNICODE).

不要只定义UNICODE.首先修复代码.可以为两者使用TCHAR宏,也可以使用宽字符函数.