1

私が書いたコードを少しコンパイルしようとすると、このエラーが引き続き発生し、ファイル内の場所がまったく役に立たなくなります。これは gtk 2.0 を使用します。

以下は、コンパイル時に受け取るものです。

charles@draton-generico:~/Documents/C89$ gcc -xc -ansi -g bahbahbah.c -o bahbahbahpkg-config --cflags --libs gtk+-2.0

bahbahbah.c: 関数 'main' 内:

bahbahbah.c:28:1: エラー: ',' トークンの前に式が必要です

以下は、コンパイルしようとしているコードです。

#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>

#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1

void closure(void)
{
    gtk_main_quit();
    printf("gtk_main_quit() has been called.\n");
}

void main(int argc, char* argv[])
{
    gboolean check = gtk_init_check(&argc, &argv);
    if (check == FALSE)
    {
        printf("Failed to initialize toolkit.\nTerminating.\n");
        exit(EXIT_FAILURE);
    }
    else
    {
        printf("Initialized toolkit.\n");
        GtkWidget* main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title((GtkWindow*)main_window, "BLAH");
        gtk_window_set_default_size((GtkWindow*)main_window, 700, 700);
        g_signal_connect(main_window, "delete-event", closure, void);
        gtk_widget_show(main_window);
        printf("Window created, sleeping in gtk_main().\n");
        gtk_main();
    }       
    printf("Exiting.\n");
    exit(EXIT_SUCCESS);
}

助けてください。:(

4

2 に答える 2

5

28 行目でNULLreplaceを使用します。void

g_signal_connect(main_window, "delete-event", closure, NULL);
于 2012-12-12T01:36:12.390 に答える
0

voidですKey-word!の説明がありg_signal_connect()ます:

#define             g_signal_connect(instance, detailed_signal, c_handler, data)

Connects a GCallback function to a signal for a particular object.

The handler will be called before the default handler of the signal.

instance :
    the instance to connect to.

detailed_signal :
    a string of the form "signal-name::detail".

c_handler :
    the GCallback to connect.

data :
    data to pass to c_handler calls.

Returns :
    the handler id

では、この関数に何も渡しませんか? 次に、を使用する必要がありますNULL

于 2012-12-12T01:52:15.880 に答える