error LNK2019: 无法解析的外部符号

在MFC中编译时出现了以下错误:

提示为

error LNK2019: 无法解析的外部符号 "wchar_t * __stdcall _com_util::ConvertStringToBSTR(char const *)

1。我先介绍一下,VS编译器中的一个选项     /Zc:wchar_t(wchar_t 是本机类型)

在VC6。0中选项为

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

在VS2003版本以上为

项目->配置属性->C/C++->语言->将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++ 中的标准遵从性问题。

 

2。解决方法:

将这个选项设置为"否"就能解决问题

你可能感兴趣的:(error LNK2019: 无法解析的外部符号)