Michael Ellery wrote:
my apologies in advance if this has been answered on the list in the
past - unfortunately I couldn't find a way to search the list archives
at http://mail-archives.apache.org/mod_mbox/xml-xalan-c-users/.
My application runs on windows (VC 7.1). I'm getting an assert in
XalanICUMessageLoader.cpp:
(line 134):
m_localeBundle = ures_open(sPackageName, szLocal , &err);
if (!U_SUCCESS(err) || m_localeBundle == 0)
{
assert( 0 );
}
..so basically it looks like it can't load the xalan message resources
for my locale (en_US).
The ICU message loader is broken for all versions of the ICU later than
3.2.1. Reverting to ICU 3.2.1 is the simplest fix.
Otherwise, I suggest you simply modify the project files to use the
InMemoryMsgLoader instead of the ICU. I think that entails the following:
1. Modifying the preprocessor definitions for the AllInOneWithICU project
by replacing XALAN_ICU_MSG_LOADER with XALAN_INMEM_MSG_LOADER. You'll find
this setting under the C/C++ options on the "Preprocessor" tab.
2. Changing the parameters passed to the Localization makefile by going to
the NMake tab of the Localization project properties, and changing the
message loader to be inmem by modifying the NMake command line:
nmake /f "BuildMessages.mak" TYPE=inmem LOCALE=en_US
Be sure to change it in all three of the command line boxes.
3. Update the additional link libraries for the "Debug" and "Release with
symbols" configurations for the AllInOneWithICU project to reflect the
slightly different import libraries that are generated. Those names are
XalanMessages_1_10D.lib and XalanMessages_1_10S.lib, respectively. You'll
find this setting under the Link options on the "Input" tab.
Dave