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

Why is this C++ code not compiling?

本文关键字:编译 代码 C++ 为什么      更新时间:2023-10-16

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

main.cpp:17:97:错误:未在此作用域中声明"gdk_pixbuf_get_from_drawable"

gdk_pixbuf_get_from_drawable在哪个.H文件中声明?下面是代码:

#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();
}

编译器认为函数gdk_pixbuf_get_from_drawable不存在。要么是拼写错误,要么是缺少#include,要么是您的平台不提供该功能。

显然gdk_pixbuf_get_from_drawable已替换为gdk_pix buf_get-from_window。来源:GNOME文档