2013-02-15 147 views
1

我使用GTK +出於某種原因,我的屏幕捕捉功能失敗與錯誤編譯:爲什麼這個C++代碼不能編譯?

main.cpp:17:97: error: ‘gdk_pixbuf_get_from_drawable’ was not declared in this scope

哪個.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(); 
} 
+0

根據'gtk'文檔中,功能'gdk_pixbuf_get_from_drawable'在'GDK/gdk.h'定義(http://developer.gnome.org/gdk/stable/gdk-Pixbufs.html) – 2013-02-15 22:30:41

+0

已經包含在項目中 – IDWMaster 2013-02-15 22:31:15

+0

這是一個很好的問題,它不幸被關閉了,但我遇到了同樣的問題,下面的解決方案也是我的解決方案。 – Noitidart 2015-05-17 07:30:32

回答

1

顯然gdk_pixbuf_get_from_drawable已被替換爲gdk_pixbuf_get_from_window。來源:GNOME documentation

+0

感謝這一點,它幫助了我很多。 – Noitidart 2015-05-17 07:30:06

1

編譯器不認爲函數gdk_pixbuf_get_from_drawable存在。或者你拼錯了,你錯過了#include,或者你的平臺沒有提供這個功能。

+1

我知道我必須缺少一個包含,問題是包含它在哪裏?文檔說它應該在gdk.h中,但顯然不存在。 – IDWMaster 2013-02-15 22:22:56

+0

嘗試通過手動搜索gdk頭文件 – jalf 2013-02-15 22:26:25