简单说,GObject就是一个让c语言实现面向对象的工具。或者是让GObject子类化的过程
以下就是步骤:
1、在.h文件中包含<glib-object.h>
2、在.h文件中创建实例结构体和类结构体,以封装一个类。
3、在.h文件中定义P_TYPE_T宏,声明p-t-get-type函数。
- p:项目缩写
- T:名称
- 比如: HW_TYPE_DLIST
4、在.c文件中调用G_DEFINE_TYPE宏,产生类型注册代码.
实例:
hw-dlist.h文件内容
#ifndef HWDLIST_H
#define HWDLIST_H
#include <glib-object.h>
#define HW_TYPE_DLIST (hw_dlist_get_type());
typedef struct _HWDListNode HWDListNode;
struct _HWDListNode {
HWDListNode *prev;
HWDListNode *next;
void *data;
};
typedef struce _HWDList HWDlist;
struct _HWDList { //实例结构体
GObject parent_instance; //这里的GObject 是GObject的实例结构体
HWDListNode *head;
HWDListNode *tail;
};
typedef struce _HWDListClass HWDListClass; //类结构体
struct _HWDListClass {
GObjectClass parent_class; //这里的GObjectClass 是GObject的类结构体
};
// GType hw_dlist_get_type(void);
#endif
// 以上的实例结构体和类结构体合起来就可以成为一个类,