• 9536阅读
  • 1回复

[讨论]QT Creator调用时提示Invalid Address specified to RtlFreeHeap错误,Release可以正常运行 [复制链接]

上一主题 下一主题
离线梦魇缘
 
只看楼主 倒序阅读 楼主  发表于: 2011-03-28
最近我在QT中使用动态库后,发现我调试时,没有打断点,但是会直接停在某处,然后提示
HEAP[TableWegditText.exe]:
Invalid Address specified to RtlFreeHeap( 003E0000, 09E467D8 )
这个问题,找了好久没有发现什么原因造成的,从网上查到的资料得知:

编译的时候,exe和dll有可能链接的是静态的运行时库,也有可能链接的是dll版本的运行时库。如果在exe或者是dll中有一个链接的是静态的运行时库,那么就会存在两套内存分配的实例。所以在dll中申请的内存,到exe中释放就会失败,因为exe并不认识那块内存。解决的办法就是都使用dll版本的运行时库,这样,在进程空间内,只有一个运行时实例。

但是我不知道怎么在QT Creator中修改类似于VS中的Runtime Library,而且我不知道是不是由于这个问题引起的。

哪位大虾之前有没有遇到类似的问题,帮帮忙,非常感谢!

离线梦魇缘
只看该作者 1楼 发表于: 2011-03-29
顶一下!!
快速回复
限100 字节
 
上一个 下一个