使用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]