单击URL时Gtk :: AboutDialog崩溃

时间:2016-01-29 11:52:23

标签: c++ gtkmm

我在Windows 7下使用GTKmm 3,MSYS2,MinGW(GCC 5.3.1)。

我使用普通窗口和Gtk :: AboutDialog创建了一个Glade界面。

一切正常,但打开“关于”对话框并单击其URL链接时,会出现下一个错误并退出程序:

(GladeTest1.exe:3440): GLib-CRITICAL **: unquote_string_inplace: assertion 'err == NULL || *err == NULL' failed

这是代码:

Gtk::Window *window1;
Gtk::AboutDialog *aboutDialog1;

builder->get_widget("window1", window1);
builder->get_widget("aboutdialog1", aboutDialog1);

aboutDialog1->set_transient_for(*window1);
aboutDialog1->show();

使用Mingw调试器我得到了这样的痕迹:

GladeTest1.exe caused an Access Violation at location 000000000070255A in module libgtk-3-0.dll Reading from location 0000000000000008.

Loading symbols... done.

Registers:
eax=00000000 ebx=03d5c1a8 ecx=00000000 edx=00000001 esi=024d8020 edi=00000016
eip=0070255a esp=0028ea9c ebp=0028eb54 iopl=0         nv up ei pl nz ac po nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00210216

AddrPC   Params
0070255A 02514D30 03B36FA0 0250FB00  libgtk-3-0.dll!gtk_search_entry_handle_event
0082845C 0257C900 0028EC84 00000002  libgtk-3-0.dll!gtk_main_do_event
63C45FD2 0028ED9C 0028ED00 0028EDBC  libgobject-2.0-0.dll!g_closure_invoke
63C5F31A 025025A8 025297B0 00000000  libgobject-2.0-0.dll!g_signal_emit_valist
6883689B 025297B0 00000000 02514D30  libglib-2.0-0.dll!g_mutex_unlock
025025A8 00000000 02514D30 00000000
025297B0 02514D30 00000000 00000000

似乎libgtk-3-0.dll或libglib DLL存在一些问题。

我正在寻找2天没有成功的答案。

缺少重要的东西?

有人有线索吗?

由于

1 个答案:

答案 0 :(得分:0)

我们在WinXP64和Win7 / G4下使用Gtk +(即Gtk2)与MSys2 / MingW 6.2.0有相同的错误/崩溃。

然而,当我们通过MingW编译/构建我们自己的Gtk / Gdk库时,完全相同的Gtk_About对话框的Http链接有效。

...这似乎指向了MSys2版本中的某些内容。实际上,当尝试按照MSys2" pkg构建方向构建Gtk时#34;也失败了(至少对我们而言)。

...我们没有太多的运气"运气"与MSys2人沟通。

...相反,我们使用所谓的" Ingar Build"在这里找到的方法(WinApiCodePack)。他的指示是从头开始的整个构建,这是几天的工作,但它对我们非常值得......并且与MSys2相比提供了更多的控制和灵活性。

P.S。您需要对Ingar的Gtk3说明进行一些调整。此外,如果您使用比Ingar网站上的版本更新/更新版本构建软件包,则需要其他软件包(由于新版本中的其他依赖项)。