首先描述一下問題,我在debug環境下運行我的程序,執行某個操作時出現這個斷言錯誤提示如下兩圖所有示:
圖一:
圖二:
相信很多人都會遇到這樣的問題,歸根結底是因爲使用動態/靜態庫出現衝突的問題,我們使用動態庫一定要遵守這樣的一個原則:
debug環境下程序使用debug環境編譯的動態/靜態庫,release環境下程序使用release環境編譯的動態/靜態庫。
運行庫也要保持一致,
md程序對應md的動態/靜態庫,mdd程序對應mdd的動態/靜態庫,
mt程序對應mt的動態/靜態庫,mtd程序對應mtd的動態/靜態庫。
我按照這個原則重新檢查了幾遍我的工程,也沒有解決這個問題,
後來一個鏈接的提示提醒了我,這個提示如下圖所示:
圖三:
看到這個提示,我產生了疑問,我的工程明明是debug環境的,爲什麼會使用到這個"msvcrt.lib"庫呢?這個庫應該是在release環境下使用的纔對啊?
這個問題一真沒有得到解釋,我檢查過很多遍我的所有使用的動態/靜態庫,也沒有發現有release環境下編譯的。
那位大拿如果有答案,可以告知一下小弟。
這個問題雖然沒有答案,但這個斷言錯誤提示的問題還是可以解決的,
於是是我在工程配置裏忽略瞭解這個庫“msvcrt.lib”,問題就解決了。
如下圖所示:
這是我的一點經驗,希望給那些遇到同樣問題的人,提供一點幫助。