用C++写了个Dll,在一导出函数抛一异常,如 throw 1;
把DLL编译一个release版本,用另一程序调用,居然也能在捕捉到这个异常,按我的理解,DLL是一种与语言无关的二进制文件,DLL里没有处理的C++ 异常,应该会导致程序直接崩溃才对,为什么在外面还能捕捉?如果是其它语言用这个DLL,又怎么去处理这个C++异常?请高手指点一二!
把DLL编译一个release版本,用另一程序调用,居然也能在捕捉到这个异常,按我的理解,DLL是一种与语言无关的二进制文件,DLL里没有处理的C++ 异常,应该会导致程序直接崩溃才对,为什么在外面还能捕捉?如果是其它语言用这个DLL,又怎么去处理这个C++异常?请高手指点一二!
解决方案 »
- 更改程序图标的问题
- 关于使用installshield2009打包的问题
- 请问:新时空三维图形与虚拟现实俱乐部上的东西能买吗??会不会是骗人,可信度有多高!!谢谢!!
- 菜鸟来送分:MFC的CSocket如何把OnAccept等事件绑定到窗体的?
- 请问mfc中OnIdle怎么用?
- 在控制台下怎样使用MFC
- 怎么样让窗口启动是最大化
- 如何理解运行时(Runtime)?
- 虚拟函数与链表的程序,程序老是仅仅调用基类的虚函数,为什么(200分)?
- 如何使用RegisterServiceProcess函数?最好有个例子。
- 如何用ADO 执行SQL语句
- 在mfc的单文档 里如何 添加 响应右键 点击 消息?
1 dll是单独的二进制代码,但它被映射到进程后,进程的结构化异常就应该能够捕获这个异常,所以不会崩溃。
2 dll使用c++编写,使用throw这样的c++异常,那么调用这个dll的进程最好也使用c++异常。
而这些归根结底还是使用了系统都结构化异常,只是包装后代码更少,处理起来更加方便。