VS2013 OpenCV 2.4.9 “HEAP:Invalid Address specified to RtlValidateHeap( 000D0000, 019FEF18 )” 错误

原创 2015年03月18日 10:02:11

在 VS2013、OpenCV 2.4.9 环境下,运行调试程序过程中先是出现“触发了一个断点”的异常:



中断停止调试后,输出窗口显示 “HEAP[XXX.exe]:Invalid Address specified to RtlValidateHeap( 000D0000, 019FEF18 )” 错误,错误定位在 “return 0;” 这一行。进行逐句注释排错后,初步确定错误来自于下面这行代码:

findContours(dilated, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);

但这个函数的用法是没有错误的,网上搜了下,有人说原因是在不同模块(工程)之间传递 C++ 类,而这两个模块用了不同的运行时库(Runtime Library)设置。例如:EXE 模块调用 DLL 模块里传递 C++ 类的函数,但 DLL 模块使用静态链接(Release 是 Multi-threaded (/MT)、Debug 是 Multi-threaded Debug (/MTd))方式编译,而 EXE 模块使用动态链接(Release 是 Multi-threaded DLL (/MD)、Debug 是 Multi-threaded Debug DLL (/MDd))方式编译,具体设置方式在 工程属性 - C/C++ - Code Generation - Runtime Library 中。


但哥尝试修改后仍然无法解决问题,然后我就想有没有可能是 VS2013 的调试器的问题,于是我把程序搬到了 VS2010 上试了试,果不其然,正常运行了!所以哥回到熟悉的 VS2013 ,在 项目 -> 属性 -> 配置属性 -> 常规 -> 平台工具集  把 Visual Studio 2013 (v120) 改为 Visual Studio 2010 (v100) ,这样,程序就可以完美运行了。


版权声明:本文为博主原创文章,未经博主允许不得转载。

HEAP[xxx.exe]:Invalid Address specified to RtlValidateHeap 错误的解决方法总结

一、情况一 抽象出问题是这样的: class DLL_API1 A { func() { vector vec; B b; b.func(vec); return...
  • chenyujing1234
  • chenyujing1234
  • 2012年12月02日 20:49
  • 9735

Invalid Address specified to RtlValidateHeap

一.首先是”Invalid Address specified to RtlValidateHeap“找到了这篇文章:http://hi.baidu.com/umu618/blog/item/d4e8...
  • bao_qibiao
  • bao_qibiao
  • 2010年01月26日 11:16
  • 14676

VS2012(2013、2015) OpenCV “HEAP:Invalid Address specified to RtlValidateHeap( 000D0000, 019FEF18 )

近期拿起一个openCV程序跑了一下,是VS2013 + OpenCV2.4.8,运行的时候如下错误: 百度,谷歌了很久,给出的办法都无法解决,于是又装了VS2012 VS2015一样的错误,但...
  • zwhlxl
  • zwhlxl
  • 2015年05月30日 18:44
  • 1224

HEAP[xxx.exe]:Invalid Address specified to RtlValidateHeap 错误的解决方法总结

一、情况一 抽象出问题是这样的: [cpp] view plaincopy class DLL_API1 A   {       func()  ...
  • mansir123
  • mansir123
  • 2015年12月31日 17:22
  • 454

OpenCV3+VS2015 配置问题(x64)

OpenCV3+VS2015 配置问题(x64)1、计算机模块 x64与x82不符debug x86 属性配置 debug x64 属性配置 2、出现Debug Assertion Failed!...
  • xinyu3307
  • xinyu3307
  • 2017年02月04日 14:37
  • 1824

phpmailer发邮件常见的一些问题总结及使用案例

PHPMailer邮件类使用错误分析 一,没有定义发送邮箱$mail->From或格式不正确,错误提示:Language string failed to load: recipients_fail...
  • haiqiao_2010
  • haiqiao_2010
  • 2013年01月30日 17:56
  • 38982

最新docker命令手册

Command Line Note: if you are using a remote Docker daemon, such as Boot2Docker, then do not type...
  • pkufergus
  • pkufergus
  • 2015年02月27日 10:58
  • 4454

FFmpeg源代码简单分析:avcodec_open2()

本文简单分析FFmpeg的avcodec_open2()函数。该函数用于初始化一个视音频编解码器的AVCodecContext。...
  • leixiaohua1020
  • leixiaohua1020
  • 2015年03月08日 00:14
  • 29966

Invalid Address specified to RtlValidateHeap

一.首先是”Invalid Address specified to RtlValidateHeap “ 找到了这篇文章:http://hi.baidu.com/umu618/blog/item/d...
  • zhangqinli
  • zhangqinli
  • 2011年11月02日 14:31
  • 772

调试: 解决跨进程时使用CString报错的问题, [Invalid Address specified to RtlFreeHeap]

起因:   今天我封了一个类, 里面有CFileDialog的操作. 作为工程内的实现运行时,完全正常.  为了其他MFC程序代码重用, 制作了带导出类的MFC扩展DLL. 当在另外一个exe中调用此...
  • LostSpeed
  • LostSpeed
  • 2011年01月08日 23:36
  • 4005
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VS2013 OpenCV 2.4.9 “HEAP:Invalid Address specified to RtlValidateHeap( 000D0000, 019FEF18 )” 错误
举报原因:
原因补充:

(最多只允许输入30个字)