
glib
山西茄子
多媒体工程师,从事ffmpeg,gstreamer,视频编码,deepstream等开发,做做笔记。
展开
-
glib库阅读
gatomic.h 实现原子操作,Windows下用InterlockedExchangeAdd等实现。gbitlock.c对bit进行加锁,直到调用g_bit_unlock。gbase64.cbase64加解密。gbuffer.cbuf的创建,删除。gcache.h实现cache。ghash.h实现hash。ghook.c实现hook类型的双链表GHookList。ghostutils.c英特网主机名工具。giowin32.c实现对IO的读写,例如g_..原创 2021-12-30 16:06:47 · 281 阅读 · 0 评论 -
glib--接口的实现
interface类似于C++中的抽象类。分三部分:接口类,实现接口的类,测试函数。这次的文件分了好几个: my-iusb.h #ifndef MY_IUSB_H #define MY_IUSB_H #include<glib-object.h> #define MY_TYPE_IUSB (my_iusb_ge...转载 2018-10-14 19:05:29 · 651 阅读 · 0 评论 -
glib简介
1 glibc 是gnu发布的libc库,也即c运行库。2 glib是gtk+的一套函数库,gobject是glib的精粹,glib是用C实现的.glib提供了动态数组、单/双向链表、哈希表、多叉树、平衡二叉树、字符串等常用容器,完全是面向对象设计的,实现得非常精致。不用白不用,别客气了。3 类型定义:整数类型:gint8,guint8,gint16,guint16,gint32,gui...转载 2018-09-09 21:12:34 · 5589 阅读 · 0 评论 -
glib--消息分发(gmainloop,gsource),信号
每一个管道默认包含一个总线,所以应用程序不需要再创建总线。应用程序只需要在总线上设置一个类似于对象的信号处理器的消息处理器。当主循环运行的时候,总线将会轮询这个消息处理器是否有新的消息,当消息被采集到后,总线将呼叫相应的回调函数来完成任务。 GLib对核心应用的支持包括事件循环、内存操作、线程操作、动态链接库的操作和出错处理与日志等。基本上,所有需要异步操作的地方都可以用事件循环。像文件、...转载 2018-09-12 14:13:39 · 5386 阅读 · 1 评论 -
基于 GObject 新写类
如果产生的是该类的第一个实例,那么先分配Class结构体,再分配针对该实例的结构体。否则直接分配针对该实例的结构。也就是说在Class结构体中所有的内容,是通过该类生成的实例所公有的。而实例化每个对象时,为其单独分配专门的实例用结构体。 c++定义 #include <iostream> class MyObject { ...转载 2018-09-12 10:27:44 · 469 阅读 · 0 评论 -
Gobject的闭包
可以直接看红颜色的例子。void qsort (void*base, size_t nmemb, size_t size, int(*compar) (constvoid*, constvoid*));闭包(Closure)的概念 我们通过函数指针向 qsort 函数传入了一个函数 str_compare,这个函数被称为回调函数,但是它还有一个比较深奥的名字——“闭包”。所谓...转载 2018-09-13 21:53:53 · 405 阅读 · 0 评论 -
GObject面向对象的继承的例子
1、继承GObject的对象Boy(父类是GObject)(1)头文件boy.h: #ifndef _BOY_H_ #define _BOY_H_ #include <glib-object.h> /**BOY_TYPE宏封装了boy_get_type函数,可以直接取得并替代Boy对象的ID标识; * BOY(obj)宏是G_TYPE_CH...转载 2018-10-14 16:48:25 · 1233 阅读 · 0 评论 -
glib库数组GArray
我们用函数g_array_new()创建一个数组,它有三个参数:第一个表示是否在数组的尾部添加'/0'结束符;第二个表示当分配空间给数组元素时是否要把它初始化为‘0’;第三个表示数组里每个元素的长度。我们用g_array_append_val()向数组中加入数据,这个函数有点像vector容器的push_back()函数,它向数组的尾部添加数据,如果内存空间不够就自动分配内存。因为g_ar...转载 2019-08-06 20:01:52 · 1906 阅读 · 0 评论