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

Reply via email to