English 中文(简体)
调用 _tcsstr,并将其分配给 wchar_t* 时编译错误。
原标题:
  • 时间:2009-01-22 19:49:00
  •  标签:

我尝试构建之前运作正常的C++项目时出现编译错误。

代码如下:

const wchar_t* pdest;
pdest = _tcsstr(ConnStr, Name);

The error follows: Error 10 error C2440: = : cannot convert from const char * to const wchar_t

我使用的是Visual Studio 2008。错误信息已经很清楚地解释了问题,但我知道这个程序以前是可以编译的,我做错了什么?

最佳回答

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

不要只是定义UNICODE。先修复代码。要么使用TCHAR宏,要么使用宽字符函数。

问题回答

_tcsstr用于使用TCHAR。根据编译设置,这可以是char或wchar_t。

因此,要么使用TCHAR,要么使用wcsstr

That should fix this issue:

Property -> Configuration Properties -> General -> Character Set : Use multi-Byte Character Set.





相关问题
热门标签