2010-06-09 5 views
1

Dans mon application GTK + i avoir une fonction dans mainwin.c:erreur: fonction non déclarée

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

Et dans ui.hi fichier ont:

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

Mais quand je tente de compiler cette application, je vois l'erreur: ui.h: erreur: «on_prev» non déclaré ici (pas dans une fonction).

Qu'est-ce qui ne va pas?

Merci.

Répondre

1

Ajouter un prototype, probablement en mainwin.h:

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

Merci pour la réponse, j'ai ajouté un prototype dans mainwin.h, mais cela n'a pas aidé :( – 0xAX

+0

S'il vous plaît poster la source de 'mainwin.h', et l'erreur exacte. –

0

Vous devriez vraiment pas avoir des données statiques dans un en-tête. Cela signifie que chaque fois que vous incluez ce fichier à partir d'un fichier C, vous obtenez une nouvelle instance statique (c'est-à-dire locale à ce fichier C) du tableau. Ce n'est probablement pas ce dont vous avez besoin.

Déplacez la déclaration et l'initialisation de la matrice dans un fichier C et assurez-vous que les diverses fonctions auxquelles elle fait référence sont correctement déclarées.

Questions connexes