原文出處:http://blog.csdn.net/immcss/article/details/5347183
在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。解決方法:
將這個選項設置爲"否"就能解決問題