violetwind 发表于 2005-9-16 17:30:40

使用glade的glade_signal_autoconnect的解决方法

关于glade,可看
用Glade和libGlade设计Gtk+图形界面
关于gtk+,可看
GTK+编程

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)
{
}
页: [1]
查看完整版本: 使用glade的glade_signal_autoconnect的解决方法