VS2015自己用MFC寫了個全域鉤子的dll然后在另一個對話框工程中參考該dll但是運行時出現如下錯誤
---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Debug Assertion Failed!
Program: C:\Windows\SYSTEM32\mfc140d.dll
File: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\appcore.cpp
Line: 196
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
---------------------------
中止(A) 重試(R) 忽略(I)
---------------------------
uj5u.com熱心網友回復:
加斷點發除錯資訊
uj5u.com熱心網友回復:
做鉤子的 DLL 最好不要使用 MFC。如果實在需要,加上 MFC 的 初始化。
uj5u.com熱心網友回復:
自己加log輸出看哪一行出錯,這種斷言錯誤應該是句柄為0造成的uj5u.com熱心網友回復:
崩潰的時候在彈出的對話框按相應按鈕進入除錯,按Alt+7鍵查看Call Stack即“呼叫堆疊”里面從上到下列出的對應從里層到外層的函式呼叫歷史。雙擊某一行可將游標定位到此次呼叫的源代碼或匯編指令處,看不懂時雙擊下一行,直到能看懂為止。uj5u.com熱心網友回復:
可是我看了“呼叫堆疊”沒有發現有什么錯誤,要不我把代碼發給您您幫我看看?
uj5u.com熱心網友回復:
錯誤里顯示的196行是appcore.cpp里的這一句ASSERT(AfxGetThread() == NULL),請問句柄為0的話我應該怎么改呢?
uj5u.com熱心網友回復:
我已經加上了初始化,,,
uj5u.com熱心網友回復:
執行緒已經退出,對執行緒句柄操作了?
點重試進去看呼叫堆疊,從堆疊里找到自己的代碼
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/121849.html
標籤:進程/線程/DLL
上一篇:2請教一下API驅動串口設備通信,使用readfile(),writefile(),程式是怎么處理設備資料的讀寫的??
下一篇:C++ ADO 多表資料
