_ASSERTE(_CrtIsValidHeapPointer(pUserData))错误详解
生活随笔
收集整理的這篇文章主要介紹了
_ASSERTE(_CrtIsValidHeapPointer(pUserData))错误详解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
可能原因:DLL和EXE主程序使用的不是同一個堆造成。 解決辦法: 1. 采用誰分配誰釋放的原則; 2. 繞過 new 和 delete,使用 GlovalAlloc 和 GlobalFree; 3. 更改工程選項, release 版本肯定不會出現(xiàn)這個失敗,這個只會存在 debug 狀態(tài)下,但是 release 會出現(xiàn)內存泄漏. 更改 debug 下 dll 和 exe 運行庫為動態(tài)編譯即: multi-threaded debug dll. 因為 multi-thread debug dll 運行庫編譯使編譯器為所有dll共享分配的堆。這樣就不會存在多個釋放過程,也就不會出現(xiàn)問題了.
總結
以上是生活随笔為你收集整理的_ASSERTE(_CrtIsValidHeapPointer(pUserData))错误详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小心DLL链接静态库时的内存错误
- 下一篇: Windows平台下动态链接库的总结