Search code examples
c++cwindowsgsoap

gSOAP 2.8.30 compatibility with VS6 C++


I try to compile my window application with gSOAP 2.8.30 but i found an error which is

wctomb_s undeclared identifier

So i just wandering if the latest gSOAP is not compatible with the VC6++ since this error come from stdsoap2.cpp. Before this i'm using gSOAP 2.8.6 is working fine.


Solution

  • VS6 C++ does not support wctomb_s (the recommended safer version of wctomb). Upgrade to a newer VS C++ release or update the code in stdsoap2.cpp function soap_string_in by replacing:

    #ifdef WIN32
            m = 0;
            wctomb_s(&m, buf, sizeof(buf), (wchar_t)(c & 0x7FFFFFFF));
    #else
            m = wctomb(buf, (wchar_t)(c & 0x7FFFFFFF));
    #endif  
    

    with:

            m = wctomb(buf, (wchar_t)(c & 0x7FFFFFFF));
    

    at both of the two locations where wctomb_s is used.