Hi, I'm new here.
So I have been programming with C and GTK+, everything went fine, until I started to struggle with a single function that I've clearly defined, but GCC says otherwise.
The error:
Attachment 15004
Translation:
エラー:'open_func'が宣言されていません(この関数内での最初の使用)
Error: 'open_func' is not being declared (this function's inside was first used)
備考:未宣言の識別子は出現した各関数内で一回のみ報告されます
Note: Undeclared identifier that appears in each function's inside was being reported only once
Code:
main.c:
Code:
// メニューシグナル。
g_signal_connect(G_OBJECT(openMi), "activate",
G_CALLBACK(open_func), (gpointer) window);
file.h
Code:
void open_func (GtkWidget *widget, gpointer window);
file.c
Code:
void open_func (GtkWidget *widget, gpointer window) {
GtkWidget *dialogue;
FILE * pFile;
dialogue = gtk_file_chooser_dialog_new("Open file",
GTK_WINDOW(window),
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
gtk_widget_show_all(dialogue);
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialogue), g_get_home_dir());
gint resp = gtk_dialog_run(GTK_DIALOG(dialogue));
if (resp == GTK_RESPONSE_OK) {
char *filename;
filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialogue));
pFile = fopen(filename, "r");
if (pFile != NULL) {
if (!readobjmodel (pFile, &objfile))
exit (EXIT_FAILURE);
renderobjmodel (&objfile);
}
g_free(filename);
g_print("%s\n", gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialogue)));
}
else {
g_print("You pressed cancel.\n");
}
gtk_widget_destroy(dialogue);
}
By the way, excuse me if I made some mistakes, I'm Japanese.