Gtk::AboutDialog 在单击 URL 时崩溃

Gtk::AboutDialog crash when clicking on URL

本文关键字:崩溃 URL AboutDialog Gtk 单击      更新时间:2023-10-16

我在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 天的答案但没有成功。

缺少一些重要的东西?

有人有头绪吗?

谢谢

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

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

。这似乎指向了 MSys2 构建中的某些内容。 事实上,当尝试按照 MSys2 构建 Gtk 时,"pkg 构建方向"也会失败(至少对我们来说是这样)。

。我们没有太多的"运气"与MSys2的人交流。

。相反,我们使用此处(http://ingar.satgnu.net/devenv/mingw32/gtk.html)的所谓"Ingar Build"方法。 他的指示是从头开始的整个构建,这是几天的工作,但这对我们来说非常值得......与MSys2相比,提供了更多的控制和灵活性。

附言您需要对 Ingar 针对 Gtk3 的说明进行一些调整。 此外,如果您构建的软件包版本比 Ingar 站点上的版本晚得多/更新,则需要额外的软件包(由于新版本中的其他依赖项)。