I've developed an java eclipse based plugin product. One of its plugin interacts with a native c++ dll to create a structured model. Later java application launches a C++ based application to open that model. I've no issues in creating the model backstore and no problem in invoking the c++ application with backstore data.
Problem happens when I exit my java application: Application crashes out. I'm using JDK 1.6 for java application, and VC2005 for creating the native dll. After downloading the symbols of some standard windows dll, my call stack shows the following -
msvcr80.dll!__crt_debugger_hook()
msvcr80.dll!__invalid_parameter() + 0x1d bytes
msvcr80.dll!__close() + 0x59 bytes
msvcr80.dll!__fclose_nolock() + 0x4c bytes
msvcr80.dll!_fclose() + 0x5f bytes
msvcr80.dll!__fcloseall() + 0x48 bytes
msvcr80.dll!___endstdio() + 0x13 bytes
msvcr80.dll!__initterm() + 0xf bytes
msvcr80.dll!___crtdll_callstaticterminators() + 0xf bytes
msvcr80.dll!___p__winver() + 0x1a1 bytes
msvcr80.dll!__CRTDLL_INIT@12() + 0x1d bytes
ntdll.dll!_LdrpCallInitRoutine@16() + 0x14 bytes
ntdll.dll!_LdrShutdownProcess@0() - 0xfe bytes
kernel32.dll!__ExitProcess@4() + 0x42 bytes
kernel32.dll!7c81cb0e()
msvcr71.dll!__crtExitProcess(int status=0) Line 463 + 0x9 bytes C
msvcr71.dll!doexit(int code=0, int quick=0, int retcaller=0) Line 403 C
msvcr71.dll!exit(int code=0) Line 303 + 0xd bytes C
jvm.dll!AsyncGetCallTrace() + 0x3e4cd bytes
[Frames below may be incorrect and/or missing, no symbols loaded for jvm.dll]
msvcr71.dll!exit(int code=0) Line 303 + 0xd bytes C
jvm.dll!AsyncGetCallTrace() + 0x3e4cd bytes
jvm.dll!_JVM_FindSignal@4() + 0xc818d bytes
jvm.dll!_JVM_FindSignal@4() + 0xc746e bytes
jvm.dll!_JVM_FindSignal@4() + 0xc77bc bytes
jvm.dll!_JVM_FindSignal@4() + 0xc7be2 bytes
jvm.dll!_JVM_FindSignal@4() + 0x52d8c bytes
msvcr71.dll!_threadstartex(void * ptd=0x26c52440) Line 241 + 0x6 bytes C
kernel32.dll!_BaseThreadStart@8() + 0x37 bytes
It seems to be a problem with closing standard output stream. Any idea how to solve this problem?
Sajal.