博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GTK+Glade3 Gtk-WARNING **: Could not find signal handler 问题最终解析
阅读量:6689 次
发布时间:2019-06-25

本文共 823 字,大约阅读时间需要 2 分钟。

GTK + 使用 Glade3 编程时,调用自动信号连接

    gtk_builder_connect_signals();

编译时不出现任何问题,但是运行时提示

Gtk-WARNING **: Could not find signal handle

可能产生的原因:

Windows 平台:

1)callback 函数没加 G_MODULE_EXPORT

宏定义如下:

    #ifdef G_PLATFORM_WIN32

    #  define    G_MODULE_EXPORT       __declspec(dllexport)
    #else /* !G_PLATFORM_WIN32 */
    #  define    G_MODULE_EXPORT
    #endif /* !G_PLATFORM_WIN32 */

2)编译选项加 -export-dynamic

Linux 平台:

1)忘加编译选项 -export-dynamic

2)如果使用 C++ 编译器,由于C++ 有名字粉碎(C++ symbol mangling), GTK+是C程序,需使用c风格的回调函数

     函数声明前加上 extern “C”   或者使用 extern "C" { ......................}

3)当然 修改G_MODULE_EXPORT 的宏定义,在回调函数定义前加G_MODULE_EXPORT宏也可以

    #ifdef G_PLATFORM_WIN32

    #  define    G_MODULE_EXPORT  __declspec(dllexport)
    #else /* !G_PLATFORM_WIN32 */
    #  define    G_MODULE_EXPORT  extern "C"
    #endif /* !G_PLATFORM_WIN32 */

转载于:https://www.cnblogs.com/gcssys/archive/2013/03/19/3790313.html

你可能感兴趣的文章
[HDU 2665&POJ 2104]K-th Number(主席树)
查看>>
重读模电教材一_童诗白、华成英
查看>>
linux 常用命令
查看>>
在textarea中鼠标指定的位置插入字符或表情
查看>>
Ansible 安装
查看>>
sychronized关键字
查看>>
C++ 控制台代码输出控制
查看>>
Delphi按名字调用方法高级解决方案
查看>>
用openssl生成SSL使用的私钥和证书,并自己做CA签名(转)
查看>>
HRBUST 1311 火影忍者之~忍者村
查看>>
Android中Java反射技术的使用示例
查看>>
Ajax[1] - 关于 jquery html 动态添加的元素绑定事件
查看>>
Mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案
查看>>
linux安装elasticsearch及遇到的各种问题
查看>>
C#进阶--WebApi异常处理机制
查看>>
为什么行内元素不能设置margin-top/margin-bottom/padding-top/padding-bottom?
查看>>
super.onCreate(savedInstanceState)、setContentView()的作用
查看>>
关于c语言面试题--宏定义1.1
查看>>
PHP 使用Nusoap类构建WebService(1)
查看>>
对比度受限的自适应直方图均衡化(CLAHE)
查看>>