|   VC++調(diào)程序出現(xiàn)如下錯(cuò)誤:  
Debug   Assertion   Failed!     Program:   D:wyuStuddebugwyuStud.exe
 File:   afx.inl
 Line:157
   可能問題:1.野指針;2.內(nèi)存泄露解決方法:
  
1.看一看你的程序里是不是有ASSERT()或VERIFY()語句。這兩個(gè)宏是用來測試它的參數(shù)是否為真的。出現(xiàn)你說的,這說明你的指針或表達(dá)試有問題  
2.File: afx.inl Line:157
 打開看看就知道了
  
3.vc++中遇到過此問題,在release下回忽略此問題,其實(shí)就是野指針的問題,在release版本下不用關(guān)心這個(gè)問題,也就是系統(tǒng)幫你給屏蔽了,但是問題還是存在的,真正使用的時(shí)候,偶爾會(huì)出來給你報(bào)個(gè)小錯(cuò)。創(chuàng)建窗體等的時(shí)候沒有new,但是在析構(gòu)的時(shí)候delete了,就會(huì)在debug環(huán)境下,報(bào)這樣的錯(cuò)誤。打開"編譯"->"配置"->"把里面除了release其他的選項(xiàng)全部刪除,再構(gòu)件就OK了4.首先如果你用的是vc6的話:
 a.按F5運(yùn)行你的程序
 b.在出錯(cuò)時(shí),選擇“重試”
 c.按ALT+7調(diào)出“調(diào)用?!贝翱?br>
d.雙擊從上往下的最近一個(gè)自己定義的函數(shù),系統(tǒng)會(huì)自動(dòng)把該函數(shù)所在的文件顯示出來,此時(shí)程序就暫停在光標(biāo)處。一般來說錯(cuò)誤就出在這附近。你可以通過查看變量的值來確認(rèn)
  
5.可以先聲明一個(gè)臨時(shí)的CString變量然后作為暫存,然后把你取得的值放入其中,之后再賦給另一個(gè)你要使用的變量,即可解決問題   
6.可能是在編寫函數(shù)調(diào)用指針變量時(shí)沒有分配空間(如果是在類中定義的指針變量,則指針在多個(gè)函數(shù)中引用時(shí)要分別重新分配空間),檢查一下。7.類似的問題,可能是因?yàn)檩敵鰧?duì)象創(chuàng)建不成功,于是使用的時(shí)候用的就是空的對(duì)象,于是就出現(xiàn)問題了。
   8.“build->clean”  
9."Project"->"setting"->"點(diǎn)擊c/c++"->"Category選項(xiàng)中選擇Preprocessor"->"在Undefined symbols:填寫_DEBUG" 重新編譯運(yùn)行即可
   10.我是在做一個(gè)ActiveX控件的時(shí)候遇到的,由于是初學(xué)者,所以在一個(gè)事件處理函數(shù)中這些輕率的寫:
 ClassMyControl pControl;
 pControl.f1();  
這些就會(huì)出現(xiàn)那個(gè)錯(cuò)誤,改完Release后雖然異常被屏蔽了,但卻直接退出了,解決方法是,聲明一個(gè)ActiveX控件對(duì)象后,還要?jiǎng)?chuàng)建才能正在創(chuàng)建。
 pControl.Create(``````);
 pControl.f1();   
OK!!!
 
 
  
 
 
 
 |