c - GTK+ C 编译错误 Visual Studio 2012

标签 c user-interface visual-studio-2012 gtk

我正在尝试在 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 |
+-------+---+----------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+----+---+------------------+

最佳答案

因为您使用的是 C 编译模式,所以您的变量应该在函数的第一个可执行语句之前声明。因此,在上面的代码片段中,GtkWidget *window 应该在代码的第一个可执行语句之前声明,即 gtk_init(&argc, &argv);

关于c - GTK+ C 编译错误 Visual Studio 2012,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15399023/

相关文章:

c - 字符串突变的简单案例

wpf - Powershell WPF StackPanel无法正确更新

c# - 未找到连接字符串,但仅在设计时

python - 在输入时保持 Visual Studio (Python) 中的当前缩进?

sql - 如何将中断 View 添加到 Visual Studio SQL Server 数据库项目

c - 尝试接受套接字连接,检索并处理消息,然后将此消息写入终端

c - ANSI C 的可嵌入 VM 运行时

c - 如何索引障碍分配

java - 实现复杂首选项屏幕的最佳方式?

Java GUI Jframe 异常处理