當我鏈接到我創建的DLL時,出現問題。拋出的異常是Unhandled exception at 0x000007FA17461069 (ntdll.dll)
。奇怪的是,這隻會發生,如果我在win32應用程序鏈接DLL,而不是在win32控制檯應用程序。這個問題似乎是處理線程創建的問題。鏈接到DLL的未處理的異常
調用棧如下:
msvcr110d.dll!_callthreadstartex() Line 354 C
msvcr110d.dll!_threadstartex(void * ptd) Line 337 C
的DLL包含實現爲ACE攝器框架,使用該操作系統的I/O完成端口。它在控制檯應用程序中運行良好,但不在win32窗口應用程序中運行。
任何幫助,將不勝感激。
編輯:通過下面的評論的要求:
的拋出異常的代碼行是ACE_Service_Config::open(GetCommandLineA());
我用ACE配置框架,所以我動態加載DLL我用的svc.conf文件。這是唯一需要寫入控制檯程序的main
功能的代碼行。
我試圖在WM_CREATE消息被捕獲後寫這行。它崩潰。
如果在發佈模式而不是調試模式下運行,會發生什麼? – Arun 2013-03-28 03:22:52
找出拋出異常的位置。確保您使用的DLL和EXE鏈接的是相同的DLL,例如一個使用調試版,但不使用其他版本。檢查日誌以確定哪個DLL正確加載。找出工作和非工作版本之間的確切區別在哪裏。找到拋出異常的代碼。提取一個最簡單的例子並在這裏發佈。 – 2013-03-28 05:20:41
@ Arun:嗯......還沒有嘗試過。我會嘗試。但是,在發佈模式下運行它時,我將不得不重建所有需要一些時間的庫。發行版和調試模式有什麼區別嗎? – l3utterfly 2013-03-28 05:21:32