Я запускаю 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 скомпилирована с некоторыми флагами, которые препятствуют созданию транскодера, но я не могу решить эту проблему. Любая помощь приветствуется.