Hi,
when I debug an application where I use the report control from a regular dll (I defined XT_INIT_BY_REGULAR_DLL and call XTFuncInitDLL) built with VS2005 SP1 and toolkit version 11.1.0 I get an access violation when the app is closing.
It happens in the destructor of CXTPPaintManager. It seems that an explicit XTFuncExitDLL call might be useful to explicitly uninitialize the toolkit.
Any ideas? Here is the call stack:
> mfc80d.dll!AfxImageList_Destroy(_IMAGELIST * himl=0x08047508) Line 40 + 0x12 bytes C++ mfc80d.dll!CImageList::DeleteImageList() Line 1333 C++ mfc80d.dll!CImageList::~CImageList() Line 1309 + 0xb bytes C++ ToolkitPro1110vc80DR.dll!XTPPaintThemes::CXTPOffice2003Theme::~CXTPOffice2003Theme() Line 66 + 0xe bytes C++ ToolkitPro1110vc80DR.dll!XTPPaintThemes::CXTPOffice2003Theme::`vector deleting destructor'() + 0x6c bytes C++ mfc80d.dll!CCmdTarget::OnFinalRelease() Line 579 + 0x21 bytes C++ mfc80d.dll!CCmdTarget::InternalRelease() Line 175 C++ ToolkitPro1110vc80DR.dll!CXTPPaintManager::Done() Line 276 C++ ToolkitPro1110vc80DR.dll!CXTPPaintManager::CPaintManagerDestructor::~CPaintManagerDestructor() Line 65 C++ ToolkitPro1110vc80DR.dll!`dynamic atexit destructor for '__xtpPaintManagerDestructor''() + 0x28 bytes C++ ToolkitPro1110vc80DR.dll!_CRT_INIT(void * hDllHandle=0x03f50000, unsigned long dwReason=0, void * lpreserved=0x00000001) Line 420 C ToolkitPro1110vc80DR.dll!__DllMainCRTStartup(void * hDllHandle=0x03f50000, unsigned long dwReason=0, void * lpreserved=0x00000001) Line 512 + 0x11 bytes C ToolkitPro1110vc80DR.dll!_DllMainCRTStartup(void * hDllHandle=0x03f50000, unsigned long dwReason=0, void * lpreserved=0x00000001) Line 462 + 0x11 bytes C mailto:ntdll.dll!_LdrpCallInitRoutine@16 - ntdll.dll!_LdrpCallInitRoutine@16 () + 0x14 bytes mailto:ntdll.dll!_LdrShutdownProcess@0 - ntdll.dll!_LdrShutdownProcess@0 () - 0x51 bytes kernel32.dll!77e668a3()
--
SvenC
|