找回密码
 注册
Simdroid-非首页
查看: 143|回复: 0

[2. C/C++/C#] 使用glade的glade_signal_autoconnect的解决方法

[复制链接]
发表于 2005-9-16 17:30:40 | 显示全部楼层 |阅读模式 来自 黑龙江哈尔滨
关于glade,可看
[url = http://www.linuxeden.com/edu/doctext.php?docid=868]用Glade和libGlade设计Gtk+图形界面[/url]
关于gtk+,可看
[url = http://263.aka.org.cn/Lectures/002/Lecture-2.1.9/Lecture-2.1.9/GTK-prog.html]GTK+编程[/url]

VC+GTK,在用glade制作界面过程后,
调用glade_signal_autoconnect并不能把相关的signal关连起来。这个最基本的问题困扰了我十分之久,最后终于在邮件列表中找到了解决方法:
原因:在于name mangling
解决方法(例子):
/* foo.h */
#ifndef _FOO_H_
#define _FOO_H_

#include <gtk/gtk.h>

#ifdef G_OS_WIN32
#define GTK_CB __declspec(dllexport)
#else
#define GTK_CB
#endif

#ifdef __cplusplus
extern "C" {
#endif

GTK_CB void example_button_clicked(GtkButton * button, gpointer user_data);

#ifdef __cplusplus
}
#endif

#endif

/* foo.cpp */
#include "foo.h"

void example_button_clicked(GtkButton * button, gpointer user_data)
{
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-1 21:35 , Processed in 0.031566 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表