VS调试错误_ASSERTE(_CrtIsValidHeapPointer(pUserData))

来源:互联网 发布:python成为顶级黑客 编辑:程序博客网 时间:2024/05/21 11:08

这个错误有两种可能:

一.释放的问题

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)。

原创粉丝点击