如何捕获界面显示时第三方控件报错???

Mnky 2008-02-27 04:34:21
我在基于对话框的工程中,程序主界面上放了一个控件,这个控件是一个摄像头开发包提供的。当我连接摄像头时,可以正常工作。
但是如果不连接摄像头,我只要一启动程序(启动时没有让摄像头开始工作),就会有报错说没有摄像头(不会退出)。把程序最小化,再显示,就再报错。
单步调试可以确定是在 CMyProApp::InitInstance() 里面的 int nResponse = dlg.DoModal(); 这一句报的错。我把这句用 try catch 包起来也没有用,捕获不到异常。

报错信息是做在控件里面的,但是又没有提供捕获异常的API,请问我怎么能捕获这种报错?我想针对错误进行处理,或者改为我自己的报错信息。
...全文
66 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mnky 2008-03-21
  • 打赏
  • 举报
回复
再顶顶
Mnky 2008-03-04
  • 打赏
  • 举报
回复
自己顶一下,等待高手啊~~~~
zhoujianhei 2008-02-28
  • 打赏
  • 举报
回复
http://blog.csdn.net/zhoujianhei/archive/2007/12/04/1915505.aspx
Mnky 2008-02-28
  • 打赏
  • 举报
回复
回4楼,我用spy++跟踪了,什么也没发现。。。都是些paint,erasebkgnd之类的。。。
回5楼,不是普通摄像头,我肯定不能自己另写一个。。。

对了,还有一个信息没有提供,就是我不运行程序,在vc里编辑的时候,在resource view里面双击打开这个对话框,都会有这种报错!!!
各位高手再帮我想想吧~~~
Mnky 2008-02-28
  • 打赏
  • 举报
回复
7楼的我也试了,还是不行。
我6楼说的现象,我后来想起来,在做控件的时候,是不是有一个,在编辑界面里也可以运行的方法?我没怎么做过控件,只是依稀有这个印象,比如时钟控件经常用到,在编辑的时候就能实时显示时间。
china_bai 2008-02-27
  • 打赏
  • 举报
回复
这个问题恐怕只能找开发商解决,你加try...catch...没用。
只有他在控件的代码里加,或者像1楼说的那样,返回一个事件进行指示。

另外,如果是普通的数码摄像头,你干脆自己写个控件代替开发商的那个控件得了。
利用Windows API就可以完成的。
jameshooo 2008-02-27
  • 打赏
  • 举报
回复
用spy++跟踪一下对话框窗口的消息,看看最后的消息是什么
Mnky 2008-02-27
  • 打赏
  • 举报
回复
回1楼,开发商提供了一套API可以捕获错误,但是我为了省事,就没用他的API,直接用它提供的控件了,但这控件却没给捕获错误的接口。
回2楼,hook api 我不会,有没有例子?另外,不知道会不会影响速度?因为我这个摄像头对帧率要求还是挺高的。
eduyu 2008-02-27
  • 打赏
  • 举报
回复
他提示错误也是调用的系统api。
如果没有源码,可以以改写进程内系统api的方式来捕获。
也就是所谓的hook win32 api
ouyh12345 2008-02-27
  • 打赏
  • 举报
回复
找摄像头开发商
控件应该有事件来应对没接摄像头的情况,或者函数返回异常

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧