天天看點

VS調試錯誤_ASSERTE(_CrtIsValidHeapPointer(pUserData))

這個錯誤有兩種可能:

一.釋放的問題

1,記憶體不能跨子產品配置設定和釋放,子產品配置設定的記憶體必須由該子產品自己來釋放。應該在DLL中再加一個方法,比如MemRelease,主程式調用這個方法來釋放記憶體。

2,就是繞過new和delete,用GlobalAlloc()和GlobalFree()的方法

二.動态連結庫的問題

這個問題有兩種情況:

1.連結外部lib出錯:目前是Debug模式,但工程屬性->Configureation Properties->Linker->Input->Additional Dependencies 中的連結庫用的卻是Release版本的,這個要仔細檢查才行。相同道理,Release的模式下也有錯用Debug連結庫的問題。

2.ruantime Linbrary 方式選擇錯誤:工程屬性->Configureation Properties->C/C++->Code Generation->Runtime Library中的選項有可能與目前的編譯方式不符。比如目前是Release模式卻選擇了Multi-threaded Debug DLL (/MDd),相反目前是Debug模式卻選擇的是Multi-threaded DLL (/MD)。

繼續閱讀