_CrtIsValidHeapPointer一個問題解決方案

首先描述一下問題,我在debug環境下運行我的程序,執行某個操作時出現這個斷言錯誤提示如下兩圖所有示:

圖一:


圖二:



相信很多人都會遇到這樣的問題,歸根結底是因爲使用動態/靜態庫出現衝突的問題,我們使用動態庫一定要遵守這樣的一個原則:

debug環境下程序使用debug環境編譯的動態/靜態庫,release環境下程序使用release環境編譯的動態/靜態庫。

運行庫也要保持一致,

md程序對應md的動態/靜態庫,mdd程序對應mdd的動態/靜態庫,

mt程序對應mt的動態/靜態庫,mtd程序對應mtd的動態/靜態庫。

我按照這個原則重新檢查了幾遍我的工程,也沒有解決這個問題,

後來一個鏈接的提示提醒了我,這個提示如下圖所示:


圖三:



看到這個提示,我產生了疑問,我的工程明明是debug環境的,爲什麼會使用到這個"msvcrt.lib"庫呢?這個庫應該是在release環境下使用的纔對啊?

這個問題一真沒有得到解釋,我檢查過很多遍我的所有使用的動態/靜態庫,也沒有發現有release環境下編譯的。

那位大拿如果有答案,可以告知一下小弟。


這個問題雖然沒有答案,但這個斷言錯誤提示的問題還是可以解決的,

於是是我在工程配置裏忽略瞭解這個庫“msvcrt.lib”,問題就解決了。

如下圖所示:



這是我的一點經驗,希望給那些遇到同樣問題的人,提供一點幫助。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章