在嵌入一些老的Crystal Reports瀏覽器這個MFC應用程序,在退出時我得到一個崩潰 (the instruction at ... referenced memory at ...; the value could not be "read").
崩潰在退出應用
不能在調試模式下運行,因爲它只再現其中沒有安裝Visual Studio中的PC上,我沒有備用許可證。
我已經添加了一些記錄和FreeLibrary則調用卸載u2dpost.dll失敗(手柄變爲無效不知)。
崩潰似乎是從失敗卸載DLL一些代碼。
我可以強制卸載嗎?我願意避免碰撞。
調用exit(0)
(醜陋的,因爲它是)仍然會導致崩潰。
該指令的地址與應用程序打開的報告相關。
在另一臺電腦(同XP SP3操作系統,同樣的水晶的DLL,剛剛的Oracle 11g VS 10G),其中調試可以很容易(安裝Visual C++),崩潰不會重現。
在問題電腦這一切發生的時候,如果我開始導出對話框(然後將其關閉或實際出口,這都沒有區別)。
我該怎麼做?
編輯:
我發現在這個差:
IDatabasePtr PDB =製備型> GetDatabase();
pDB-> AddRef(); //用這行代碼在XP電腦上崩潰;沒有它在我的Windows 7工作站上崩潰
(Win &崩潰在CCmdTarget :: OnFinalRelease()最後一行:刪除此;) 有什麼建議嗎?
您確定有問題的計算機上需要安裝Redistributable嗎? – SChepurin 2012-07-23 13:06:30
是的,一切正常,這只是退出崩潰 – user581243 2012-07-23 13:26:37
您是否嘗試遠程調試:http://msdn.microsoft.com/en-us/library/y7f5zaaa.aspx – IronMensan 2012-07-23 13:40:05