0

在我的项目中,使用 __stdcall 至关重要。但是,我明白了:

1>ExchangeParser.obj: 错误 LNK2001: 无法解析的外部符号“public: static void __cdecl xercesc_3_0::XMLString::release(unsigned short * *,class xercesc_3_0::MemoryManager * const)” (?release@XMLString@xercesc_3_0@@SAXPEAPEAGQEAVMemoryManager @2@@Z) 1>ExchangeParser.obj : 错误 LNK2001: 无法解析的外部符号 "public: static char * __cdecl xercesc_3_0::XMLString::transcode(unsigned short const * const,class xercesc_3_0::MemoryManager * const)" (? transcode@XMLString@xercesc_3_0@@SAPEADQEBGQEAVMemoryManager@2@@Z) 1>ExchangeParser.obj : 错误 LNK2001: 无法解析的外部符号 "public: static unsigned short * __cdecl xercesc_3_0::XMLString::transcode(char const * const,class xercesc_3_0: :MemoryManager * const)" (?transcode@XMLString@xercesc_3_0@@SAPEAGQEBDQEAVMemoryManager@2@@Z) 1>ExchangeParser.obj : 错误 LNK2001: 无法解析的外部符号“public: static char const * const xercesc_3_0::XMLUni::fgXercescDefaultLocale” (?fgXercescDefaultLocale@XMLUni@xercesc_3_0@@2QBDB) 1>ExchangeParser.obj: 错误 LNK2001: 无法解析的外部符号“公共:静态类 xercesc_3_0::MemoryManager * xercesc_3_0::XMLPlatformUtils::fgMemoryManager" (?fgMemoryManager@XMLPlatformUtils@xercesc_3_0@@2PEAVMemoryManager@2@EA) 1>ExchangeParser.obj:错误 LNK2001:未解析的外部符号“公共:静态类 xercesc_3_0 ::DOMImplementation * __cdecl xercesc_3_0::DOMImplementationRegistry::getDOMImplementation(unsigned short const *)" (?getDOMImplementation@DOMImplementationRegistry@xercesc_3_0@@SPEAVDOMImplementation@2@PEBG@Z) 1>ExchangeParser.obj : 错误 LNK2001: 无法解析的外部符号“公共:静态无符号短常量 * 常量 xercesc_3_0::XMLUni::fgDOMWRTFormatPrettyPrint" (?fgDOMWRTFormatPrettyPrint@XMLUni@xercesc_3_0@@2QBGB) 1>ExchangeParser.obj:错误 LNK2001:未解析的外部符号“公共:静态无符号短常量 * 常量 xercesc_3_0: :XMLUni::fgDOMXMLDeclaration" (?fgDOMXMLDeclaration@XMLUni@xercesc_3_0@@2QBGB)

有什么帮助吗?

4

1 回答 1

0

Xerces 是开源的,所以为什么不编译你自己的变体__stdcall作为默认约定,那么你就不会有链接错误。

它甚至带有适用于每个 Windows IDE 的项目(包括您正在使用的 MSVC),因此只需加载它,更改一个全局选项并点击编译(您可能需要更改一些__cdecl必须明确说明的地方使用过,但编译器在构建时会在这些位置出错)。

于 2012-03-13T11:13:26.283 回答