1. 程式人生 > >0xC015000F 正在被停用的啟用上下文不是最近啟用的”錯誤解決方法

0xC015000F 正在被停用的啟用上下文不是最近啟用的”錯誤解決方法

程式在windowsXP和Windows7 32系統下執行的好好的,今天裝了一個windows7 64位系統(說明,程式本身還是32位開發的),執行時出現“0xC015000F 正在被停用的啟用上下文不是最近啟用的”這個錯誤,找了好長時間才解決,下面總結如下:

網上提到較多的方法是在呼叫CWinApp::InitInstance();介面後面使用afxAmbientActCtx = FALSE;我採用這個方法後確實不會出現這個問題,不過我的程式中有一些程式碼由於把這個變數設成false後導致不執行,所以會出現其他問題,所以放棄該方法。

我採用的方式是將Debug時所有MFC異常都丟擲,不讓MFC處理異常,這樣就不會導致crash,

方法如下:在VS2008中“Debug”選單->“Exceptions”->"Win32 Exceptions",然後將這些異常都丟擲就可以了,將所有的都check上。不過這樣的話應該也會把其他異常給丟擲了,比如記憶體越界之類的。你的程式碼最好在其他機子上測一下,處理這些異常。
丟擲異常後,才發現,原來是自己寫的程式碼紕漏太多,再次建議大家都把異常丟擲勾上。