我們的應用程序加載第三方DLL,有時會彈出MessageBoxes。 我們注意到,有時我們不能僅在有一個打開的MessageBox時使用exit(0)。MessageBox阻止從應用程序退出
在這種情況下,我們又如何強制存在?
感謝
我們的應用程序加載第三方DLL,有時會彈出MessageBoxes。 我們注意到,有時我們不能僅在有一個打開的MessageBox時使用exit(0)。MessageBox阻止從應用程序退出
在這種情況下,我們又如何強制存在?
感謝
看起來像你的醜陋的DLL調用MessageBox
(或其他)DLL_THREAD_DETACH
或DLL_PROCESS_DETACH
內。
如果這種情況發生在同一個線程(即線程調用exit
),你可以嘗試致電PostQuitMessage
權以前的應用程序退出。這應該會中止任何消息循環。如果這發生在另一個線程中 - 您可以撥打PostThreadMessage
。
還有一個選項可以通過掛接相應的模塊(Exe/Dll)導入表來攔截對Win32 API函數的調用。由J.Richter發明(如果我沒記錯的話)。 http://www.player.idv.tw/prog/index.php/APIHook
爲清潔解決方案+1! – 2012-03-13 20:15:15
環境? OS? – 2012-03-13 09:37:18
對不起,Windows Vista及以上版本 – kambi 2012-03-13 09:44:47