Могу ли я использовать соглашение __stdcall при использовании Xerces-C 3.0? Я получаю ошибки компоновщика - PullRequest
0 голосов
/ 13 марта 2012

В моем проекте крайне важно использовать __stdcall. Тем не менее, я получаю это:

1> ExchangeParser.obj: ошибка LNK2001: неразрешенный внешний символ "public: static void __cdecl xercesc_3_0 :: XMLString :: release (unsigned short * *, класс 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, класс 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, класс xercesc_3_0 :: MemoryManager * const)" (? Transcode @ XMLString @ xercesc_3_0 @ @ SAPEAGQEBDQEAVMemoryManager @ 2 @@ Z) 1> ExchangeParser.obj: ошибка LNK2001: неразрешенный внешний символ "public: статический символ const * const xercesc_3_0 :: XMLUni :: fgXercescDefaultLocale" (? FgXercescDefaultLocale @ XMLUni @ xercesc_3_0 @@ 2QBDB) 1> ExchangeParser.obj: ошибка LNK2001: неразрешенный внешний символ "public: статический класс xercesc_3_0 :: MemoryManager * xercesc_3_0 :: XMLPlatformUtils :: fgMemoryManager" (? FgMemoryManager @ XMLPlatformUtils @ xercesc_3AV @ @Manory EA 2) @ 1> ExchangeParser.obj: ошибка LNK2001: неразрешенный внешний символ "public: статический класс xercesc_3_0 :: DOMImplementation * __cdecl xercesc_3_0 :: DOMImplementationRegistry :: getDOMImplementation (unsigned short const *)" (? GetDOMImpleces @Rede @ @ _Emp_MS_MD_MS_Emp_MS_MD_MS_MD_MS_M_Impment @ @ DOM @ DOM @ DOM @ DOM @ DOM PEBG @ Z) 1> ExchangeParser.obj: ошибка LNK2001: неразрешенный внешний символ "public: static unsigned short const * const xercesc_3_0 :: XMLUni :: fgDOMWRTFormatPrettyPrint" (? FgDOMWRTFormatPrettyPrint @ XMLUni @ xercesc_QB) @ 1> ExchangeParser.obj: ошибка LNK2001: неразрешенный внешний символ "public: static unsigned short const * const xercesc_3_0 :: XMLUni :: fgDOMXMLDeclaration" (? FgDOMXMLDeclaration @ XMLUni @ xercesc_3_0 @@ 2QBGB)

Любая помощь?

1 Ответ

0 голосов
/ 13 марта 2012

Xerces - это с открытым исходным кодом , так почему бы просто не скомпилировать свой вариант, который использует __stdcall в качестве соглашения по умолчанию, тогда у вас не будет ошибок компоновки.

Он даже поставляется с проектами для каждой Windows IDE (включая MSVC, который, по-видимому, вы используете), так что достаточно просто загрузить его, изменить один глобальный параметр и запустить компиляцию (вам может понадобиться изменить некоторые места, где __cdecl должно быть явно использовано, но компилятор выдаст ошибку в этих местах при его сборке).

...