为什么这个C ++代码没有编译?

时间:2013-02-15 22:15:55

标签: c++ gtk header-files

我正在使用GTK +,由于某种原因我的屏幕捕获功能无法编译并出现错误:

  

main.cpp:17:97:错误:未在此范围内声明'gdk_pixbuf_get_from_drawable'

哪个.H文件是gdk_pixbuf_get_from_drawable声明的?以下是代码:

#include <libCrossLibs.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk/gdk.h>
#include <gtk/gtk.h>

ILibraryInstance* inst;

GdkPixbuf* get_screenshot() {
    GdkPixbuf* screenshot;
    GdkWindow* rootWindow;
    gint x_orig, y_orig;
    rootWindow = gdk_get_default_root_window();
    gint width, height;
    width = gdk_window_get_width(rootWindow);
    height = gdk_window_get_height(rootWindow);
    gdk_window_get_origin(rootWindow,&x_orig,&y_orig);

    screenshot =  gdk_pixbuf_get_from_drawable(NULL, rootWindow, 
        NULL, x_orig, y_orig, 0, 0, width, height);

    return screenshot;
}

int main(void) {
    inst = InitializeLibraries();
}

2 个答案:

答案 0 :(得分:1)

编译器认为函数gdk_pixbuf_get_from_drawable不存在。你拼错了它,你错过了#include,或者你的平台没有提供这个功能。

答案 1 :(得分:1)

显然gdk_pixbuf_get_from_drawable已被gdk_pixbuf_get_from_window取代。资料来源:GNOME documentation