C++ 为什么是C++;代码不编译?
我正在使用GTK+,由于某些原因,我的屏幕捕获函数无法编译,出现以下错误: main.cpp:17:97:错误:“gdk_pixbuf_get_from_drawable”未在此范围内声明 gdk_pixbuf_get_from_drawable在哪个.H文件中声明?代码如下:C++ 为什么是C++;代码不编译?,c++,gtk,header-files,C++,Gtk,Header Files,我正在使用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 &
#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();
}
#包括
#包括
#包括
#包括
ILibraryInstance*仪器;
GdkPixbuf*获取屏幕截图(){
GdkPixbuf*屏幕截图;
GdkWindow*根窗口;
基特·克奥尔格,克奥尔格;
rootWindow=gdk_get_default_root_window();
轧棉宽度、高度;
宽度=gdk_窗口_获取_宽度(根窗口);
高度=gdk_窗口_获取_高度(rootWindow);
gdk_窗口_获取_原点(rootWindow,&x_原点,&y_原点);
屏幕截图=gdk_pixbuf_get_from_drawable(NULL,rootWindow,
空、x_原点、y_原点、0、0、宽度、高度);
返回截图;
}
内部主(空){
inst=初始化库();
}
编译器认为gdk\u pixbuf\u get\u from\u drawable函数不存在。要么拼写错误,要么缺少一个#include
,要么您的平台不提供该功能。显然,gdk_pixbuf_get_from_drawable已替换为gdk_pixbuf_get_from_window。来源:我知道我一定缺少一个include,问题是它在哪个include中?文档说它应该在gdk.h中,但显然不在那里。尝试手动搜索gdk头文件根据gtk
文档,函数gdk\u pixbuf\u get\u from\u drawable
在gdk/gdk.h
()中定义,它已经包含在项目中。这是一个好问题,它被无情地关闭了,但我也有同样的问题,下面接受的解决方案也是我的解决方案。谢谢你,它帮了我很多。