GObject

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

GObject

GLib Object System,也叫GObject,是一个免费的库(由LGPL授权)。它提供了一个可移植的对象系统,清晰的跨语言互用性。GObject被设计成既可以直接在C语言中使用,也可以通过绑定,用于其它语言。

历史

GObject只依赖于GLib和libc,它是GNOME的基石,被广泛应用于GTK+,Pango,Accessibility Toolkit及大多数高层次GNOME库和应用程序。在GTK+2.0 之前,GObject代码是GTK+代码的一部分。(名字“GObject ” 当时还未使用——共同的基类叫GtkObject)

 

由于它的通用性,GTK+2.0把这个对象系统给抽取成一个分离的库。 再这个过程中,GtkObject内和GUI无关的部分被移到GObject中,GObject成为新的共同基类。自从2002年3月11日(GTK+2.0发布),GObject作为一个分离开的库已经被很多非GUI的程序所使用,例如命令行和server应用程序。

和Gilb的关系

尽管GObject有它自己的文档集,并且通常被编译成它自己的共享文件,但是GObject的源代码位于GLib的源代码树,并且和GLib一起发布。因此,GObject采用GLib的版本号,典型地和Glib打包在一起(例如,Debian把GObject放在libglib2.0包族)。

类型系统

GObject框架最基础的一层是一个叫做GType的泛化的动态的类型系统。GType系统保存着所有对象的运行时描述符,这样可以利用“胶水”代码便于多语言绑定。这个类型系统可以处理任何单继承类结构,附加地也可以处理

非类结构的类型,例如opaque pointers,s

Gstreamer基础之Gobject 文章目录Gobject简介 GStreamer是依附于GLib 2.0对象模型的,采用了信号与对象属性的机制,所有的GStreamer对象都采用GObject继承的方法进行扩展,是所有GStreamer对象的基类,因此有必要学习一下Gobject是怎么回事。 Gobject简介 ... 阅读详情

相关推荐

Gobject之signal

GObject 信号(Gignal)主要用于特定事件与响应者之间的连接,它与操作系统级中的信号没有什么关系。 一般在class_init时,由g_signal_new生成一个新信号句柄并绑定回调函数,也可以使用g_signal_connect连接对象和处理方式(回调函数),由g_signal_emit发出信号触发。 guint g_signal_new (const gcha

lp525110627的博客 4274

Object详解

Object类是所有类的父类(包括数组),Object类中共有12个方法(除了init和cinit以外)。 一个静态本地方法registerNatives,在类被加载时执行。 5个方法可以被子类覆盖(也在vtable中)—hashCode(),equals(Object obj),clone(),toString(),finalize()。 6个final的方法,基本逻辑都是由本地方法实现,get...

ljz2016的博客 3865

6. Gobject 学习总结

简单的来说,GObject是一个程序库,它可以帮助我们使用C语言编写面向对象的程序。   很多人被灌输了这样一种概念:要写面向对象程序,那么就需要学习一种面向对象编程语言,例如C++、Java、C# 等等,而 C 语言是用来编写结构化程序的。事实上,面向对象只是一种编程思想,不是一种编程语言。换句话说,面向对象是一种游戏规则,它不是游戏。GObject 告诉我们,使用 C 语言编写程序时,可以

吾皇的博客 4771

GObject官方详细文档

目录 背景 数据类型和编程 导出C API GLib动态类型系统 复制功能 约定 不可实例化的基本类型 (如gchar) 可实例化的类型:对象 初始化和销毁 不可实例化的类型:接口 接口初始化 接口销毁 GObject基类 对象实例化 对象内存管理 引用计数 弱引用 引用计数和周期 对象属性 一次访问多个属性 GObject消息传递系统 关闭 C闭包 ...

Ysu_LiuYang的博客 7084

GObject Tutorial

GObject Tutorial Ryan McDougall(2004) 目的 — 这篇文档可用于两个目的:一是作为一篇学习Glib的GObject类型系统的教程,二是用作一篇按步骤的使用GObject类型系统的入门文章。文章从如何用C语言来设计一个面向对象的类型系统开

我们这里还有鱼······ 1499

GObject入门(一)类和实例

GObject入门

paw5zx的博客 1146

GObject基类

GObject基类 前一章讨论了GLib动态类型系统的细节。GObject库还包含一个名为GObject的基本类型的实现。 GObject是一个基本的类实例化类型。 它实现: (1)内存管理引用计数 (2)实例的构造/析构 (3)具有set/get函数对的通用每个对象属性 (4)轻松使用信号 所有使用GLib类型系统的GNOME库(如GTK +和GStreamer)都继承自GObje

lp525110627的博客 4431

GObject 简明教程(一)

最近,我一直在深入学习 GStreamer(相关教程可以从我主页中看到)。在探索其复杂的设计逻辑时,我意识到需要深入研究 GStreamer 的源码。而因为 GStreamer 是基于 GObject 开发的,掌握 GObject 的基本概念就显得尤为重要。本文整理自,简化了细节,保留了一些关键内容,以便更好地理解。提示:以下是本篇文章正文内容,下面案例可供参考。

记录学习的过程 2272

linux - gobject使用

gobject简介sample*.h*.c 简介 Gobject 系统提供了一个灵活的、可扩展的、并且容易映射到其他语言的面向对象的 C 语言框架. (1)是Glib库的动态类型系统实现,它实现了:   [1] 基于引用计数的内存管理   [2] 实例的构造和析构   [3] 通用的set/get的属性获取方法   [4] 简单易用的信号机制 GObject 的动态类型系统允许程序在运行时进行类型注册,主要目的有两个: (1)使用面向对象的设计方法来编程,GObject 仅依赖于 GLib 和 li

qq_25439881的博客 1624

GObject 简明教程(二)

最近,我一直在深入学习 GStreamer(相关教程可以从我主页中看到)。在探索其复杂的设计逻辑时,我意识到需要深入研究 GStreamer 的源码。而因为 GStreamer 是基于 GObject 开发的,掌握 GObject 的基本概念就显得尤为重要。本文整理自,简化了细节,保留了一些关键内容,以便更好地理解。上一章GObject 简明教程(一)我们介绍了的前面五章。今天我们继续,将后面几章也进行总结和更新。

记录学习的过程 950

Gobject tutorial 八

如果这是最后一个对对象B的引用,那么A释放对B的引用,会导致unref 函数执行对象B的dispose, 进而导致B对象释放对对象A的引用,如果这也是对对象A的最后一个引用,对象B对对象A的引用的释放会导致第二次执行A的dispose。既然在注册属性过程中,GparamSpec是必须的,那么,就有必要对生成GParamSpec的函数进行说明,我们以上例中的g_param_spec_float为例,看看Glib的说明。对于不同的对象实例,属性值是不同的,因此,属性值是存储在对象的实例中的。

编程是一门艺术 964

快速上手Gobject

What is G-object? —很多人被灌输了这样一种概念:要写面向对象程序,那么就需要学习一种面向对象编程语言,例如C++、Java、C#等等,而C语言是用来编写结构化程序的。 —事实上,面向对象只是一种编程思想,不是一种编程语言。换句话说,面向对象是一种游戏规则,它不是游戏。 —Gobject,亦称Glib对象系统,是一个程序库,它可以帮助我们使用C语言编写面向对象程序;它提供了一

铁匠Smith先生的专栏 2万+

[pyvips] GLib | GObject | GValue

我准备了一个盒子`GValue value = G_VALUE_INIT`,放了个整数 42`set_int(&value, 42)`,然后交给别人处理。

No Game No Life 1124

sec2-GObject

GObject实例用函数g_object_new创建。GObject不仅仅有实例,也有类。从广义上讲,GObject意味着对象,这个对象包括它的类和实例。在狭义上将,GObject是一个C结构体的定义。这个GObject程序是在GLib源文件里面,可以从GNOME下载GLib源文件。5-6:instance1和instance2是指向GObject实例的指针,class1和class2指向实例的一个类(同一个类)。

Creationyang的博客 924

Gobject专栏索引

索引首页:https://blog.csdn.net/knowledgebao/article/details/84776046 官网API:https://developer.gnome.org/gobject/stable/ gobject相关概念:https://blog.csdn.net/knowledgebao/article/details/82498187 第一章:GObjec...

knowledgebao的博客 7516

GObject 与 GStreamer 中文手册

GObject对象系统 简单的说,GObject对象系统是一个建立在GLIB基础上的, 用C语言完成的,具有跨平台特色的、灵活的、可扩展的、非常容易映射到其它语言的面向对象的框架。 如果你是一个C语言的执着的追随者,你没有理由不研究一下它。 NOTE: glib库是Linux平台下最常用的C语言函数库,它具有很好的可移植性和实用性。 glib是Gtk +库和Gnome的基础。 glib可以在多个平台下使用,比如Linux、Unix、Windows等。glib为许多标准的、常用的C语言结构提供了相应的替代物.

书山有路勤为径 2392

Gobject tutorial 七

当g_object_new获取到新对象的初始化完成的类结构的索引之后,如果GObject的constructor函数被重写,那么,g_object_new函数将会调用新类型的类结构中constructor(如上例中的viewer_file_cosntructed,实际上也是新类ViewFileClass中GObject的constructor,这是因为,ViewFile是一个final类型对象)来创建新对象。GObject能够确保所有类结构和实例结构的成员(除指向父结构的成员外)的值都被设置为0。

编程是一门艺术 903

GObject 学习笔记汇总 GObject Introspection

http://garfileo.is-programmer.com/2012/2/20/gobject-introspection-introduction.32200.html http://garfileo.is-programmer.com/2011/3/28/a-simple-example-for-gobject-introspection.25662.html

梦想狂奔的专栏 3195
上一篇: 第0篇
下一篇: 日记2011-02-12
m_user2012
博客等级 码龄16年 10粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值