2010-06-09 64 views
1

在我的GTK +应用程序,我有功能是mainwin.c:错误:未声明的功能

void 
on_prev(GtkWidget* btn, MainWin* mw) 
{ 
    ... 
} 

而且在文件ui.hi有:

#include "mainwin.h" 
static const GtkActionEntry entries[] = { 
    { 
     "Go Back", 
     GTK_STOCK_GO_BACK, 
     "Go Back", 
     "<control>b", 
     "Go Back", 
     G_CALLBACK(on_prev) 
    }, 
} 

但是,当我尝试编译这个应用程序,我看到错误:ui.h:错误:'on_prev'此处未声明(不在函数中)。

怎么了?

谢谢。

回答

1

添加原型它,大概在mainwin.h:

void 
on_prev(GtkWidget* btn, MainWin* mw); 
+0

谢谢你的回复,我在mainwin.h中添加了原型,但它没有帮助:( – 0xAX 2010-06-09 08:25:50

+0

请发布'mainwin.h'的源代码,以及确切的错误。 – 2010-06-09 10:54:58

0

你真的不应该在头的静态数据。这意味着每次从C文件包含该文件时,都会获得该阵列的新静态(即,该C文件的本地)实例。这很可能不是你所需要的。

将数组的声明和初始化移动到C文件中,并确保它所引用的各种函数都被正确声明。