XMLPlatformUtils :: Initialize () не создает Transcorder в Xerces 3.2.2 - PullRequest
0 голосов
/ 09 апреля 2020

Я запускаю Xerces 3.2.2 на Windows 10. Мое приложение раньше работало с предыдущими версиями Xerces, но с Xerces 3.2.2 оно не работает.

По сути я делаю следующее

// MyApplication.cc

xercesc::XMLPlatformUtils::Initialize();

// Lots of code
// ...

// 'toTranscode' is a valid 'const XMLCh* const'
// Exception thrown here
char* char_str = xercesc::XMLString::transcode(toTranscode);

Причиной исключения является то, что gTranscoder из XMLString. cpp в Xerces не был создан при выполнении xercesc::XMLPlatformUtils::Initialize();. Естественно, следующий вызов транскодера в Xerces завершается неудачно, поскольку gTranscoder равно NULL.

// XMLString.cpp in Xerces
char* XMLString::transcode(const XMLCh* const toTranscode,
                           MemoryManager* const manager)
{
    return gTranscoder->transcode(toTranscode, manager);
}

Я подозреваю, что моя версия Xerces скомпилирована с некоторыми флагами, которые препятствуют созданию транскодера, но я не могу решить эту проблему. Любая помощь приветствуется.

...