关于对话框创建过程出现异常的解决方法
来源:互联网 发布:dnf源码 编辑:程序博客网 时间:2024/06/06 11:42
昨天,遇见一个怪事,使用CDialog的Create方法创建一个已经做好资源的对话框时,总是出现异常。
CDialog m_Dialog;m_Dialog.Create(nID,this); // 执行时异常
一直很奇怪找不到问题的原因。上网gogo了一下,说是可能是资源ID的问题。于是自己又重新做了一个资源,再试还是有问题。拿以前没问题的资源尝试,问题还在。
这下可急坏我了,一般情况下vs工具是能够帮助用户发现异常位置,但是通过对话框对象调用Create方法时,这个异常只是提示,但是就是不能定位。
遂开始分析,m_Dialog是一个对象成员,对象成员的地址空间,是在程序静态区,在程序运行之前就已经分配好的空间,通过该空间访问的系统函数都是受保护的,vs工具无法追踪定位,一旦出问题,程序就卡在入口处,连GetLastError()的机会都没有。
想知道异常出现的具体位置,看来需要把这个成员对象,在运行时动态创建在程序堆栈中了。程序堆栈中的调用都会有相应的代码跟踪。
CDialog *m_pDialog;if (NULL == m_pDialog){ m_pDialog = new CDialog(this); m_pDialog->Create(nID,this);}
再次运行程序,依然是执行Create时异常,但异常很快的定位到一个未进行创建的指针非法使用的地方。修复程序bug,再次运行,一起搞定。
这里主要提示的是,在程序无法定位到具体异常位置时,特别是执行系统函数接口时,最好采用指针对象,虽然指针需要用户维护更多的代码,但是对于查找错误确实帮助不小。
- 关于对话框创建过程出现异常的解决方法
- MFC对话框中文出现乱码的解决方法
- 关于动态链接库中创建非模态对话框出现的问题
- 非模态对话框的创建和销毁过程
- 关于Java导入excel表格出现下标越界异常的解决方法(个人心得记录)
- 在windows xp下使用dbca创建数据库过程中出现的问题及解决方法
- java中常出现的异常及解决方法
- dnw出现未处理的异常解决方法、、
- jedis 中出现ArrayIndexOutOfBoundsException异常的解决方法
- web Services中出现的异常解决方法
- 使用JDBC出现NoClassDefFoundError异常的解决方法
- android签名打包出现异常的解决方法。
- launchctl list status 出现异常的解决方法
- 关于火狐的中 javascript 的 window.parent.closeBox();window.parent.location.href='../User.aspx'; 出现 对话框的解决方法
- 关于Map表循环过程删除操作出现的java.util.ConcurrentModificationException 异常
- 关于Map表循环过程删除操作出现的java.util.ConcurrentModificationException 异常
- 关于在使用EXTJS过程中页面出现白板的解决方法
- 关于在使用EXTJS过程中页面出现白板的解决方法
- 纳新什么的最期待(累) 了 >_<
- PHP的字符串函数
- 【转】优化PHP性能的五个实用技巧
- Javascript中最常用的125个经典技…
- 107个常用Javascript语句
- 关于对话框创建过程出现异常的解决方法
- 【转】假毛护理教程
- 我的博客今天5岁88天了,我领取了…
- 石家庄漫展 北京D剧团 中华神厨
- 2012漫展 未央公社 仙剑四
- 黑子的篮球
- 2012漫展杂谈
- 2012 石家庄漫展 (图多慎入)
- 自制火焰文字