[ 
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.

Reply via email to