今天遇到个超级奇怪的问题,昨天还好端端的程序,今天用VS打开后,在关闭主窗口的时候居然弹出错误提示:xx.exe 中的 0x7c92e4df 处最可能的异常: "0xC0000008: An invalid handle was specified".当时都郁闷了,你说奇了怪了,什么代码都没改,只是清理了下解决方案而已,不至于嘛!然后,就想着是不是以下MainForm_FormClosing事件中的代码问题:

仔细审察后,没发现什么异常问题.只是调试到WndProc函数后,程序就出现了错误提示.

满心欢喜以为找到了问题所在,可是却没有一点提示信息,当时是无从下手啊.不仅这样,很奇怪的是,明明我已经终止了程序,但是再次启动调试却不可以,跑到进程里一看,已经莫名奇妙有个同样的程序在运行,想终止它也不行.最后把VS关了,再看进程,没有了.把我又给郁闷了,什么情况?

"我们的项目是C#做的界面,C++做的底层,调用了不少的动态链接库,会不会是调用动态库的问题",脑袋只是一闪而过,但立刻打消了这个念头.因为程序昨天下班还是好好的嘛.其实,自己做的程序,心里特别得知道是不是程序的问题.我当时就相信不是程序的问题,可能是其它什么原因导致的.

自己捣鼓了一会儿无果,就请教Leader帮忙看看(有近十年编程经验,我挺佩服的一个人),我就简单描述下吧:

首先问题出在wndproc函数内,调试未果,于是我们就用spy++捕获消息源,折腾一会儿也是无果.因为,你根本就看不到任何提示,任何可能引起异常的代码.没有一丁点儿头绪.加上进程里关不掉的程序.我们更加坚信不是代码问题,于是我试着用发布版的代码,启动关闭程序都没有问题.看来问题出在调试代码的时候.但是调试过程中能出现什么问题呢?实在是又没头绪了,于是Leader说把代码发给他,他在他的电脑上完美运行,未出现问题.这下有眉目了,至少可以判断不是代码的问题了.但又是什么原因导致的呢?先从启电脑,再到今天安装了什么软件,把无关的破软件关掉卸载...等等,我们都尝试了.问题还是没有解决,难不成,我得重装系统了么.赶上中午吃饭,也不再想这个问题了.下午一上班,google了下,看见也有类似问题,但都是一些没有解决的,倒是有个发了个c/c++的给了我提示,我就把对我有用的文字截图如下:

虽然问题不是一样,但很可能就是我的程序调用了其它的dll,于是就用Leader写的一个可以看运行的程序进程中调用了哪些dll的程序,打开一个正常的程序,打开一个调试中出现问题的程序,对比它们,发现出现问题的程序比正常程序多调用了4个dll,排除系统动态库,以及本程序调用的动态库,发现多的4个动态库,居然是其它程序的,MMD,终于找到问题所在了,然后用Dependency walker查看这些动态库里面调用了些什么函数,发现都有个DbgPint函数,它是用来调试的.

果断卸载关联软件,问题解决.感谢Leader.

xx.exe 中的 0x7c92e4df 处最可能的异常: 0xC0000008: An invalid handle was specified的更多相关文章

  1. xx.exe 中的 0x014180bd 处有未经处理的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突(当指针访问异常时,应考虑是不是对象未创建)。

    xx.exe 中的 0x014180bd 处有未经处理的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突

  2. 动态链接库中分配内存引起的问题-- windows已在XX.exe中触发一个断点

    动态链接库中分配内存引起的 本文主要是探讨关于在动态链接库分配的内存在主程序中释放所产生的问题,该问题是我在刚做的PJP工程中所遇到的,由于刚碰到之时感动比较诡异(这也是学识不够所致),所以将它写下来 ...

  3. 有未经处理的异常(在 xx.exe 中): 堆栈 Cookie 检测代码检测到基于堆栈的缓冲区溢出。

    一般这个问题是数组越界. 我产生这个异常的代码是这句:memcpy(tmp_cert.byKey, m_row[2], 255); 255的长度超过了char数组tmp_cert.byKey的长度.

  4. 转:"在已损坏了程序内部状态的XXX.exe 中发生了缓冲区溢出"的一种可能原因

    我的问题跟原作者的问题差不多.头文件和DLL不匹配导致的. 原文链接:http://blog.csdn.net/u012494876/article/details/39030887 今天软件突然出现 ...

  5. XX.exe 系统找不到指定文件

    错误:unable to start ... XX.exe 系统找不到指定文件 今天调试一个项目,关于泊松融合的,项目名叫PoissonEditing,编译通过之后一直再报错,找不到PoissonEd ...

  6. 其原因可能是堆被损坏,这说明**.exe中或它加载的任何DLL中有Bug

    最近在写一个写日志文件的线程时,调用了HeapAlloc/HeapFree 申请/释放堆缓冲内存.调用HeapFree释放有个条件就是,日志的空闲缓冲队列中内存块超过100个.在测试的时候,发现调用H ...

  7. 页面打开 抛出w3wp.exe 中发生未处理异常

    页面打开 抛出w3wp.exe 中发生未处理异常

  8. 没有 RunInstallerAttribute.Yes 的公共安装程序。在 C:/Program/xx.exe 程序集中可能可以找到

    今天在装服务的时候,装了半天总是提示 没有 RunInstallerAttribute.Yes 的公共安装程序.在 C:/Program/xx.exe 程序集中可能可以找到“Yes”属性. 才发现同事 ...

  9. 把exe嵌入到自己的exe中。delphi xe3

    下面是一个把exe程序嵌入到我们自己的exe中.开发环境 Delphi XE3 Version 17.0.4625.53395.OS环境WIN7 SP1,由于xe3版本的引用库发生变化.换成其他版本的 ...

随机推荐

  1. Linux系统性能诊断工具纲要

    Linux的性能分析工具众多,在微博上发现了系统性能专家Brendan D. Gregg,在最近LinuxCon NA 2014大会上发布的关于Linux性能方面的talk和幻灯片.和去年比较,今年增 ...

  2. 纯css实现鼠标感应弹出二级菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. jsonp调用实例

    首先我们来定义接口的规范,就像这样:http://www.mydomain.com/jsonp/ticker?symbol=IBM&callback=showPricesymbol是请求条件, ...

  4. JVM内存结构之三--持久代

    本文会介绍一些JVM内存结构的基本概念,然后很快会讲到持久代,来看下Java SE 8发布后它究竟到哪去了. 基础知识 JVM只不过是运行在你系统上的另一个进程而已,这一切的魔法始于一个java命令. ...

  5. dzzoffice注册开启

    dzzoffice默认安装注册选线是关闭的,需要在“系统设置”里打开. 设置方法 开始菜单=>系统设置=>注册与访问=> 将允许用户注册选勾,选上. 然后提交保存.

  6. Unity 内置着色器(转)

    Unity包括超过40种内置的shader. 标准着色器家族 Normal Shader Family 这些着色器都是Unity基本的着色器.适用于大多数的不透明物体,如果想要物体有透明.发光效果等, ...

  7. openGl从零开始之添加颜色

    OpenGL 支持两种颜色模式:一种是 RGBA模式,一种是 颜色索引模式.无论哪种颜色模式,计算机都必须为每一个像素保存一些数据,即通过每一个像素的颜色,来改变整体图形的颜色.不同的是, RGBA ...

  8. 解决g++:command not found(centos7.0)

    问题背景,因为装了虚拟机,系统为centos7.0,由于是纯净版,没有gcc,使用命令yum install gcc安装了gcc,但是没安装g++,导致g++:command not found问题. ...

  9. C++二叉树的实现

    C++实现二叉查找树 啥是二叉查找树 在数据结构中,有一个奇葩的东西,说它奇葩,那是因为它重要,这就是树.而在树中,二叉树又是当中的贵族.二叉树的一个重要应用是它们在查找中的应用,于是就有了二叉查找树 ...

  10. windows下跑python flask,环境配置

    首先声明一下,我安装的是python 2.7. 第一步:下载easy_setup.py 下载地址:https://pypi.python.org/pypi/setuptools 这个下载地址真心难找, ...