exception code 61 when initialize ws call
Hi there, I am trying moving my Axis C++ client from linux box to windows box but no luck yet - it seems the client loads the dll OK as I saw following from the output window in MS Visual Studio: 'searchClient.exe': Loaded 'C:\opt\utils\axis-c-1-5-win32\bin\AxisXMLParserXerces.dll', No symbols loaded. 'searchClient.exe': Loaded 'C:\opt\utils\xerces-c2_2_0-win32\bin\xerces-c_2_2_0.dll', No symbols loaded. 'searchClient.exe': Loaded 'C:\WINDOWS\system32\msvcirt.dll', No symbols loaded. 'searchClient.exe': Loaded 'C:\opt\utils\axis-c-1-5-win32\bin\HTTPTransport.dll', No symbols loaded. 'searchClient.exe': Loaded 'C:\opt\utils\axis-c-1-5-win32\bin\HTTPChannel.dll', No symbols loaded. However, once it step into the generated stub code and call initialize at : if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER)) return RetArray; it throws an exception which has a exception code 61 and and error msg: "Error: expression cannot be evaluated" as observed from the "Locals" window; at the same time, the output is: First-chance exception at 0x7c81eb33 in searchClient.exe: Microsoft C++ exception: HTTPTransportException @ 0x014ff854. First-chance exception at 0x7c81eb33 in searchClient.exe: Microsoft C++ exception: axiscpp::AxisGenException @ 0x014ff8f4. First-chance exception at 0x7c81eb33 in searchClient.exe: Microsoft C++ exception: [rethrow] @ 0x. Any idea what have I done wrong? I am trying to rebuild the axis to get an debuggable version - but without luck neither, the error from ant is: 4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow) [cc] C:\opt\work\axis-c-src-1-5-win32\src\engine\Axis.cpp(302) : error C2440: 'reinterpret_ca st' : cannot convert from 'volatile long *' to 'void ** ' [cc] Conversion loses qualifiers [cc] C:\opt\work\axis-c-src-1-5-win32\src\engine\Axis.cpp(302) : fatal error C1903: unable to recover from previous error(s); stopping compilation where the code is like this: static volatile long g_uModuleInitializing = 0; static void start_initializing() { long exchange = 1; long comperand = 0; while (InterlockedCompareExchange(((void **)&g_uModuleInitializing), (void *)&exchange, (void *)&comperand)); } the line 302 is the last line where calling InterlockedCompareExchange(((void **)... Any suggestion? By the way, the same code works ok on linux. Thanks! Tao
Re: exception code 61
Hi, To answer your second question: The locking mechanism used on Windows relied on an API which changed between versions of MS Visual C++. Unfortunately, this was not discovered until after Axis C++ 1.5 was released. However, we have now fixed this section of code to use an alternate API. If you wish to use source, you can get this from SVN (see instructions here: http://ws.apache.org/axis/cpp/developers-guide.html#checkingOut ) Adrian ___ Adrian Dick ([EMAIL PROTECTED]) WebSphere MQ and ESB Development IBM United Kingdom Ltd. Tel: +44-(0)-1962-819212 Notes: Adrian Dick/UK/[EMAIL PROTECTED] > > I am trying to rebuild the axis to get an debuggable version - but > without luck neither, the error from ant is: > 4290: C++ exception specification ignored except to indicate a function > is not __declspec(nothrow) >[cc] C:\opt\work\axis-c-src-1-5-win32\src\engine\Axis.cpp(302) : > error C2440: 'reinterpret_ca > st' : cannot convert from 'volatile long *' to 'void ** ' >[cc] Conversion loses qualifiers >[cc] C:\opt\work\axis-c-src-1-5-win32\src\engine\Axis.cpp(302) : > fatal error C1903: unable to > recover from previous error(s); stopping compilation > where the code is like this: > > static volatile long g_uModuleInitializing = 0; > static void start_initializing() > { > long exchange = 1; > long comperand = 0; > while (InterlockedCompareExchange(((void **)&g_uModuleInitializing), > static_cast(&exchange), static_cast(&comperand))); > } > the line 302 is the last line where calling > InterlockedCompareExchange(((void **)... > Any suggestion? > > By the way, the same code works ok on linux. > > Thanks! > Tao
exception code 61
Hi there, I am trying moving my Axis C++ client from linux box to windows box but no luck yet - it seems the client loads the dll OK as I saw following from the output window in MS Visual Studio: 'searchClient.exe': Loaded 'C:\opt\utils\axis-c-1-5-win32\bin\AxisXMLParserXerces.dll', No symbols loaded. 'searchClient.exe': Loaded 'C:\opt\utils\xerces-c2_2_0-win32\bin\xerces-c_2_2_0.dll', No symbols loaded. 'searchClient.exe': Loaded 'C:\WINDOWS\system32\msvcirt.dll', No symbols loaded. 'searchClient.exe': Loaded 'C:\opt\utils\axis-c-1-5-win32\bin\HTTPTransport.dll', No symbols loaded. 'searchClient.exe': Loaded 'C:\opt\utils\axis-c-1-5-win32\bin\HTTPChannel.dll', No symbols loaded. However, once it step into the generated stub code and call initialize at : if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER)) return RetArray; it throws an exception which has a exception code 61 and and error msg: "Error: expression cannot be evaluated" as observed from the "Locals" window; at the same time, the output is: First-chance exception at 0x7c81eb33 in searchClient.exe: Microsoft C++ exception: HTTPTransportException @ 0x014ff854. First-chance exception at 0x7c81eb33 in searchClient.exe: Microsoft C++ exception: axiscpp::AxisGenException @ 0x014ff8f4. First-chance exception at 0x7c81eb33 in searchClient.exe: Microsoft C++ exception: [rethrow] @ 0x. Any idea what have I done wrong? I am trying to rebuild the axis to get an debuggable version - but without luck neither, the error from ant is: 4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow) [cc] C:\opt\work\axis-c-src-1-5-win32\src\engine\Axis.cpp(302) : error C2440: 'reinterpret_ca st' : cannot convert from 'volatile long *' to 'void ** ' [cc] Conversion loses qualifiers [cc] C:\opt\work\axis-c-src-1-5-win32\src\engine\Axis.cpp(302) : fatal error C1903: unable to recover from previous error(s); stopping compilation where the code is like this: static volatile long g_uModuleInitializing = 0; static void start_initializing() { long exchange = 1; long comperand = 0; while (InterlockedCompareExchange(((void **)&g_uModuleInitializing), static_cast(&exchange), static_cast(&comperand))); } the line 302 is the last line where calling InterlockedCompareExchange(((void **)... Any suggestion? By the way, the same code works ok on linux. Thanks! Tao