Debug Assertion Failed!
VC++調程式出現如下錯誤:
Debug Assertion Failed!
Program: D:wyuStuddebugwyuStud.exe
File: afx.inl
Line:157
可能問題:1.野指標;2.記憶體洩露
解決方法:
1.看一看你的程式裡是不是有ASSERT()或VERIFY()語句。這兩個巨集是用來測試它的引數是否為真的。出現你說的,這說明你的指標或表達試有問題
2.File: afx.inl
Line:157
開啟看看就知道了
3.vc++中遇到過此問題,在release下回忽略此問題,其實就是野指標的問題,在release版本下不用關心這個問題,也就是系統幫你給遮蔽了,但是問題還是存在的,真正使用的時候,偶爾會出來給你報個小錯。建立窗體等的時候沒有new,但是在析構的時候delete了,就會在debug環境下,報這樣的錯誤。開啟"編譯"->"配置"->"把裡面除了release其他的選項全部刪除,再構件就OK了
4.首先如果你用的是vc6的話:
a.按F5執行你的程式
b.在出錯時,選擇“重試”
c.按ALT+7調出“呼叫棧”視窗
d.雙擊從上往下的最近一個自己定義的函式,系統會自動把該函式所在的檔案顯示出來,此時程式就暫停在游標處。一般來說錯誤就出在這附近。你可以通過檢視變數的值來確認
5.可以先宣告一個臨時的CString變數然後作為暫存,然後把你取得的值放入其中,之後再賦給另一個你要使用的變數,即可解決問題
6.可能是在編寫函式呼叫指標變數時沒有分配空間(如果是在類中定義的指標變數,則指標在多個函式中引用時要分別重新分配空間),檢查一下。
7.類似的問題,可能是因為輸出物件建立不成功,於是使用的時候用的就是空的物件,於是就出現問題了。
8.“build->clean”
9."Project"->"setting"->"點選c/c++"->"Category選項中選擇Preprocessor"
->"在Undefined symbols:填寫_DEBUG" 重新編譯執行即可
10.我是在做一個ActiveX控制元件的時候遇到的,由於是初學者,
所以在一個事件處理函式中這些輕率的寫:
ClassMyControl pControl;
pControl.f1(); 這些就會出現那個錯誤,改完Release後雖然異常被遮蔽了,但卻直接退出了,解決方法是,宣告一個ActiveX控制元件物件後,還要建立才能正在建立。
pControl.Create(``````);
pControl.f1(); OK!!!