惊鸿浪子

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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()函数。

不太理解为什么会这样,有待以后思考

posted on 2013-10-22 16:40  shithappens  阅读(1477)  评论(0编辑  收藏  举报