2013-10-10 63 views
0

我更新了我的环境中构建wxWidgets2.8.12使用MinGW/MSYS的当前版本(GCC 4.8.1)异常处理无法正常工作,OnExceptionInMainLoop不叫

我使用的配置脚本来构建WX-部件:

./configure --prefix=/wx --with-opengl --enable-debug --enable-debug_gdb --enable-unicode 

我的应用程序依赖于我的wxApp子类使用wxApp::OnExceptionInMainLoop一些例外的处理。 此使用MinGW的GCC 3.4.5和wxWidgets2.8.7(由wxPack预建)

用新编译wxWidgets的图书馆,是工作的罚款,只要一个异常被抛出,而不是直接抓的程序显示一个“Microsoft Visual C++运行库“窗口并退出与代码3

的示例设置有wxWidgets的2.8.12(wxWidgets-2.8.12\samples\except),除了示出了相同故障行为

我尝试不同版本的wxWidgets(静态,释放,单片)所有的具有相同的结果。

基本在MinGW的跨库异常支持似乎是确定的,我验证了这一点利用这短暂的测试test

我将不胜感激任何有用的提示, 或者即使有人可以验证我的问题(只在您的安装中构建“except”示例,并选择Throw unhandled exception

+0

btw。这不是我第一次尝试解决这个问题,前段时间我在wx论坛发帖,可惜没有得到任何答复:http://forums.wxwidgets.org/viewtopic.php?f=1&t=30350&p=130265&hilit = onExceptionInMainLoop#p130265 – baxit

回答

0

您需要使用SJLJ(而非Dwarf)版本的编译器才能从Windows消息处理程序正确传播异常,所以我认为您的问题是只是由于使用了错误的版本。

+0

谢谢!我使用了[mingwbuilds](http://sourceforge.net/projects/mingwbuilds/)提供的mingw-gcc 4.8.1的sjlj版本,现在一切正常。 – baxit