[ https://issues.apache.org/jira/browse/AXIS2C-1367?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
S.Uthaiyashankar updated AXIS2C-1367: ------------------------------------- Component/s: (was: code generation) util > sprintf format I32d not supported by Visual C++ 6.0 > --------------------------------------------------- > > Key: AXIS2C-1367 > URL: https://issues.apache.org/jira/browse/AXIS2C-1367 > Project: Axis2-C > Issue Type: Bug > Components: util > Affects Versions: 1.4.0, 1.4.1, 1.5.0, 1.6.0 > Environment: Microsoft Windows > Visual C++ 6.0 > Reporter: Eric Hsiung > > The following are defined in axutil_utils_defines.h: > #if defined(WIN32) > #define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%I64d" > #define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%I64u" > #define AXIS2_PRINTF_INT32_FORMAT_SPECIFIER "%I32d" > #define AXIS2_PRINTF_UINT32_FORMAT_SPECIFIER "%I32u" > #else > #if __WORDSIZE == 64 > #define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%ld" > #define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%lu" > #else > #define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%lld" > #define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%llu" > #endif > #define AXIS2_PRINTF_INT32_FORMAT_SPECIFIER "%d" > #define AXIS2_PRINTF_UINT32_FORMAT_SPECIFIER "%u" > #endif > Microsoft Visual C++ 6.0 does not support I32 in the format string (though it > does support I64). > sprintf(szBuf, AXIS2_PRINTF_INT32_FORMAT_SPECIFIER, 123456) yields the string > "I32d". > This of course leads to invalid SOAP messages and various errors. > The fix is to use _MSC_VER to conditionally compile different format strings > for VC++6 versus later versions of VC++ (which do support I32) like this: > #if defined(WIN32) > #define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%I64d" > #define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%I64u" > #if _MSC_VER > 1200 > #define AXIS2_PRINTF_INT32_FORMAT_SPECIFIER "%I32d" > #define AXIS2_PRINTF_UINT32_FORMAT_SPECIFIER "%I32u" > #else > #define AXIS2_PRINTF_INT32_FORMAT_SPECIFIER "%d" > #define AXIS2_PRINTF_UINT32_FORMAT_SPECIFIER "%u" > #endif > #else > #if __WORDSIZE == 64 > #define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%ld" > #define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%lu" > #else > #define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%lld" > #define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%llu" > #endif > #define AXIS2_PRINTF_INT32_FORMAT_SPECIFIER "%d" > #define AXIS2_PRINTF_UINT32_FORMAT_SPECIFIER "%u" > #endif > AXIS2C-1295 seems to be referring to this problem as well. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.