代码之家  ›  专栏  ›  技术社区  ›  Stimy

调用_tcsstr并分配给wchar_t时发生编译错误*

  •  0
  • Stimy  · 技术社区  · 17 年前

    当我试图构建一个以前有效的C++项目时,我遇到了一个编译错误。

    代码如下:

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

    错误如下:

    3 回复  |  直到 17 年前
        1
  •  7
  •   ctacke    17 年前

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

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

        2
  •  1
  •   peterchen    17 年前

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

    所以,要么使用 TCHAR ,或 wcsstr

        3
  •  0
  •   take-it    10 年前

    这应该可以解决这个问题:

    财产->配置属性->一般->字符集:使用多字节字符集。