bstr error LNK2019: 无法解析的外部符号 "char * __stdcall _com_util::ConvertBSTRToString(wchar_t *)" 的解决办法

Setting of the project in "C/C++ -> Language -> Treat wchar_t as Built-In Type" to "No" (originally it was: "Yes(/Zc:wchar_t)".

/Zc:wchar_t(wchar_t 是本机类型)

/Zc:wchar_t

如果未指定 /Zc:wchar_t,则编译器要求您或者定义 wchar_t,或者包括定义 wchar_t 的众多头文件中的一个文件(例如 wchar.h)。wchar_t 通常定义为 unsigned short

在指定 /Zc:wchar_t 编译器选项时,类型 wchar_t 成为映射到 __wchar_t 的本机类型,其映射方式与 short 映射到 __int16 相同。

如果使用 /Zc:wchar_t,编译器将 wchar_t 识别为本机类型。有关 wchar_t 的更多信息,请参见数据类型范围。

__wchar_t 始终可用。

通过同时为 wchar_t 的无符号短格式和 __wchar_t 变体提供重载,您可以创建能够轻松通过用(或未用)/Zc:wchar_t 编译的代码链接的库,并且无需提供该库的两个不同的版本(启用和未启用 /Zc:wchar_t 的版本)。

指定 /Zc:wchar_t 时,定义 _WCHAR_T_DEFINED_NATIVE_WCHAR_T_DEFINED 符号;有关更多信息,请参见预定义宏。

有关 Visual C++ 的一致性问题的更多信息,请参见 Visual C++ 中的标准遵从性问题。

在 Visual Studio 开发环境中设置此编译器选项

  1. 打开此项目的“属性页”对话框。有关详细信息,请参见设置 Visual C++ 项目属性。
  2. 单击“C/C++”文件夹。
  3. 单击“语言”属性页。
  4. 修改“将 wchar_t 视为内置类型”属性。
ms-help://MS.MSDNQTR.2003FEB.2052/vccore/html/vclrfZcwchar_t.htm

你可能感兴趣的:(bstr error LNK2019: 无法解析的外部符号 "char * __stdcall _com_util::ConvertBSTRToString(wchar_t *)" 的解决办法)