对不起,我是新手。 我正在尝试学习xfce4:mousepad的非常简单的文本编辑器。 但在其中我可以看到两个破碎的符号 mousepad_window_get_type 和 mousepad_application_get_type
/home/utente/Desktop/mousepad-master/mousepad/mousepad-window.h:
22 G_BEGIN_DECLS
23
24: #define MOUSEPAD_TYPE_WINDOW (mousepad_window_get_type ())
25 #define MOUSEPAD_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MOUSEPAD_TYPE_WINDOW, MousepadWindow))
26 #define MOUSEPAD_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MOUSEPAD_TYPE_WINDOW, MousepadWindowClass))
..
44 typedef struct _MousepadWindow MousepadWindow;
45
46: GType mousepad_window_get_type (void) G_GNUC_CONST;
47
48 GtkWidget *mousepad_window_new (void);
/home/utente/Desktop/mousepad-master/mousepad/mousepad-application.h:
25 typedef struct _MousepadApplication MousepadApplication;
26
27: #define MOUSEPAD_TYPE_APPLICATION (mousepad_application_get_type ())
28 #define MOUSEPAD_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MOUSEPAD_TYPE_APPLICATION, MousepadApplication))
29 #define MOUSEPAD_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MOUSEPAD_TYPE_APPLICATION, MousepadApplicationClass))
..
32 #define MOUSEPAD_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MOUSEPAD_TYPE_APPLICATION, MousepadApplicationClass))
33
34: GType mousepad_application_get_type (void) G_GNUC_CONST;
35
36 MousepadApplication *mousepad_application_get (void);
答案 0 :(得分:0)
这些符号可能在项目的其他头文件中定义。在项目目录中执行$ grep -nr mousepad_window_get_type .
。这将显示mousepad_window_get_type一词的所有可用用法。但是,您很可能在项目的任何位置都找不到这些符号,因为我怀疑它们是编译项目时链接的库中可用的函数。
答案 1 :(得分:0)
* _get_type函数由G_DEFINE_TYPE macro定义。它们也可以由G_DECLARE_FINAL_TYPE或G_DECLARE_DERIVABLE_TYPE声明,但鼠标垫不是这样。
Xfce的项目是用GTK +编写的,所以你需要先学习它,否则你会发现一些代码部分令人困惑。你可以找到很多关于GTK + / GObject / GLib的教程,他们的文档是(希望)全面的。 The GLib/GTK+ Development Platform是初学者的好开始。