[xsde-users] Problems with Windows 64bit application

Boris Kolpackov boris at codesynthesis.com
Fri Jun 1 11:33:57 EDT 2012


Hi Matthias,

Matthias Maschek <matthias.maschek at uma.at> writes:

> I get the following error:
> The generated Code uses long long while the XSDe runtime does not.
>
> I generated the code on a Linux64bit, but now i try to use it as is on  
> Windows 64 bit in an 64 bit application.
> Do i have to recompile the whole runtime from XSDe from scratch in 64  
> bit so that it works?

Support for long long is optional in XSD/e and is controlled with the
XSDE_LONGLONG parameter in config.make/config.nmake. If this support
is enabled, then the C++ compiler must support the long long type
and the C runtime must provide the strtoull() function. On Linux,
both of these conditions are met so support for long long is enabled
by default. On Windows, while long long is supported by newer versions
of VC++, strtoull() is still not available. So on Windows long long
support is disabled.

You have two ways to resolve your problem:

1. You can keep the Linux XSD/e runtime configured with long long
   enabled but will need to compile generated code differently
   for Windows (add --no-long-long option).

2. Alternatively, if you want to use the same generated code on
   both Linux and Windows, then you will need to re-configure
   and re-build the Linux XSD/e runtime not to use long long
   (set XSDE_LONGLONG to 'n' in config.make). You will also
   need to compile your schemas with the --no-long-long option.

I would recommend that you go with approach #2 since it is more
consistent.

Boris



More information about the xsde-users mailing list