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: 未解決の外部シンボル " public: static class xercesc_3_0::MemoryManager * xercesc_3_0::XMLPlatformUtils::fgMemoryManager" (?fgMemoryManager@XMLPlatformUtils@xercesc_3_0@@2PEAVMemoryManager@2@EA) 1>ExchangeParser.obj: エラー LNK2001: 未解決の外部シンボル "public: static class xercesc_3_0 ::DOMImplementation * __cdecl xercesc_3_0::DOMImplementationRegistry::getDOMImplementation(unsigned short const *)" (?getDOMImplementation@DOMImplementationRegistry@xercesc_3_0@@SAPEAVDOMImplementation@2@PEBG@Z) 1>ExchangeParser.obj: エラー LNK2001: 未解決の外部シンボル"public: static unsigned short const * const xercesc_3_0::XMLUni::fgDOMWRTFormatPrettyPrint" (?fgDOMWRTFormatPrettyPrint@XMLUni@xercesc_3_0@@2QBGB) 1>ExchangeParser.obj: エラー LNK2001: 未解決の外部シンボル "public: static unsigned short const * const xercesc_3_0: :XMLUni::fgDOMXMLDeclaration" (?fgDOMXMLDeclaration@XMLUni@xercesc_3_0@@2QBGB)

何か助けはありますか?

4

1 に答える 1

0

Xerces はオープン ソースであるため、既定の規則として使用する独自のバリアントをコンパイルするだけで__stdcall、リンケージ エラーは発生しません。

__cdeclすべての Windows IDE (使用しているように見える MSVC を含む) 用のプロジェクトも付属しているため、それをロードし、1 つのグローバル オプションを変更してコンパイルを押すだけです (明示的に指定する必要がある場所を変更する必要がある場合があります)。使用されますが、コンパイラはビルド時にこれらの場所でエラーになります)。

于 2012-03-13T11:13:26.283 に答える