我在尝试构建以前工作的C++项目时遇到了编译错误.
代码如下:
const wchar_t* pdest; pdest = _tcsstr(ConnStr, Name);
错误如下:错误10错误C2440:'=':无法从'const char*'转换为'const wchar_t
我正在使用Visual Studio 2008.错误消息很好地解释了问题,但我知道这个程序用于编译,我做错了什么?
你的代码很危险._tcsstr是一个TCHAR宏,因此它的定义可以根据是否定义UNICODE而改变.wchar_t是固定的.您看到的错误是由于这个确切的问题 - 环境使用_tcsstr的单字节版本(可能因为未定义UNICODE).
不要只定义UNICODE.首先修复代码.可以为两者使用TCHAR宏,也可以使用宽字符函数.