调用_tcssrt并分配给wchar\u t时发生编译错误* 当尝试构建以前工作过的C++项目时,我会遇到编译错误。

调用_tcssrt并分配给wchar\u t时发生编译错误* 当尝试构建以前工作过的C++项目时,我会遇到编译错误。,c++,visual-studio-2008,C++,Visual Studio 2008,守则如下: const wchar_t* pdest; pdest = _tcsstr(ConnStr, Name); 错误如下: 错误10错误C2440:“=”:无法从“常量字符*”转换为“常量字符” 我正在使用VisualStudio2008。错误消息很好地解释了问题,但我知道这个程序用于编译,我做错了什么?您的代码很危险_TCSSR是一个TCHAR宏,因此它的定义可以根据是否定义UNICODE而改变。wchar_t是固定的。您看到的错误正是由于这个问题——环境使用的是单字节版本的_tcs

守则如下:

const wchar_t* pdest;
pdest = _tcsstr(ConnStr, Name);
错误如下: 错误10错误C2440:“=”:无法从“常量字符*”转换为“常量字符”


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

您的代码很危险_TCSSR是一个TCHAR宏,因此它的定义可以根据是否定义UNICODE而改变。wchar_t是固定的。您看到的错误正是由于这个问题——环境使用的是单字节版本的_tcssr(可能是因为没有定义UNICODE)


不要只定义UNICODE。首先修复代码。可以同时使用TCHAR宏,也可以使用宽字符函数。

\u TCSTR用于TCHAR。根据编译设置,这是char或wchar\t


因此,可以使用
TCHAR
wcsstr

来解决此问题:

属性->配置属性->常规->字符集:使用多字节字符集


我是在调试模式下编译的,而不是在unicode模式下编译的,这就是为什么以前可以工作,但现在不行的原因。谢谢你的帮助。