1:文档结构如下:
muldesktop.c
muldesktop.h
practice.c
2:main函数代码如下
void destroy(GtkWidget * widget,gpointer data) /*点击标题栏上的关闭按钮时对该信号处理*/ { gtk_main_quit(); } int main(int argc ,char *argv[]) { MulDesktopWindow *muldesktop; gtk_init(&argc,&argv); muldesktop=muldesktop_new(); g_signal_connect(GTK_OBJECT(muldesktop->win),"destroy",G_CALLBACK(destroy),NULL); /*绑定关闭*/ gtk_main(); return 0; }
之后编译就出现GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkObject'
后来参考http://blog.csdn.net/kingson_wu/article/details/9081049文章
文中“你不会是把一个local变量传进去了吧”给我提示:
我的MulDesktopWindow结构体定义在muldesktop.h文件中,新建该结构体的函数定义在muldesktop.c中,而对结构体内部组件增加信号响应函数,是在main函数中的,不再同一个文件中
所以应该放在muldesktop.c文件中写入destroy函数,并在新建MuldesktopWindow的函数中添加g_signal_connect()函数。
不太理解为什么会这样,有待以后思考