0

VS2012 で単純な GTK+ C プログラムをコンパイルしようとしています。GTK+ が VS2012 で動作するようになった後、簡単なプログラムを試して、正しくコンパイルおよび実行されるかどうかを確認することにしました。解決できると確信しているいくつかのコンパイル エラーが発生していますが、それらの解決方法がわかりません。ここに私の情報源があります:

#include <gtk/gtk.h>

static void destroy(GtkWidget *widget, gpointer data) 
{ 
    gtk_main_quit(); 
} 

int main(int argc, char *argv[]) 
{ 
    gtk_init(&argc, &argv); 
    GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 
    gtk_window_set_title(GTK_WINDOW(window), "Window"); 
    g_signal_connect(window, "destroy", G_CALLBACK(destroy), NULL); 
    gtk_widget_show_all(window); 
    gtk_main(); 
    return 0; 
} 

これらは私が得ているエラーです:

+-------+---+----------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+----+---+------------------+
| Error | 1 | error C2275: 'GtkWidget' : illegal use of this type as an expression | c:\users\pr0d1gy\documents\visual studio 2012\projects\cassemblyexample\cassemblyexample\source.c | 10 | 1 | CAssemblyExample |
| Error | 2 | error C2065: 'window' : undeclared identifier                        | c:\users\pr0d1gy\documents\visual studio 2012\projects\cassemblyexample\cassemblyexample\source.c | 10 | 1 | CAssemblyExample |
| Error | 3 | error C2065: 'window' : undeclared identifier                        | c:\users\pr0d1gy\documents\visual studio 2012\projects\cassemblyexample\cassemblyexample\source.c | 11 | 1 | CAssemblyExample |
| Error | 4 | error C2065: 'window' : undeclared identifier                        | c:\users\pr0d1gy\documents\visual studio 2012\projects\cassemblyexample\cassemblyexample\source.c | 12 | 1 | CAssemblyExample |
| Error | 6 | error C2065: 'window' : undeclared identifier                        | c:\users\pr0d1gy\documents\visual studio 2012\projects\cassemblyexample\cassemblyexample\source.c | 13 | 1 | CAssemblyExample |
+-------+---+----------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+----+---+------------------+
4

1 に答える 1

4

コンパイルモードを使用しているためC、関数の最初の実行可能ステートメントの前に変数を宣言する必要があります。したがって、上記のコードスニペットでは、コードGtkWidget *windowの最初の実行可能ステートメントの前に宣言する必要があります。gtk_init(&argc, &argv);

于 2013-03-14T00:44:51.783 に答える