【GLib】GLib学习笔记(一):GLib、GObject、GType
1、GLib
GLib是 Gtk+ 庫和 Gnome 的基礎。glib 可以在多個平臺下使用,比如 Linux、Unix、Windows 等。GLib為許多標準的、常用的 C 語言結構提供了相應的替代物。
GLib是GTK+的基礎庫,它由基礎類型、對核心應用的支持、實用功能、數據類型和對象系統五個部分組成。它是一個綜合用途的實用的輕量級的C程序庫,它提供C語言的常用的數據結構的定義、相關的處理函數,有趣而實用的宏,可移植的封裝和一些運行時機能,如事件循環、線程、動態調用、對象系統等的API。
2、GObject
GObject依賴Glib,GObject原來是GTK+的一部分, 在GTK+ 2.0中將與GUI不相關的部份都移到了GObject里,從此GObject誕生;
現在,GObject源碼包含在Glib源碼里,GLib 一起發行,構成GLib的對象系統。
有了GObject,就可以使用C語言來完成面向對象的框架。
3、GType
Gtype提供了GLib的數據類型系統和數據類型定義,是GObject對象系統的基礎。GObject 框架的基層主要依靠GType實現泛型與動態型別。
GType 是GLib 運行時類型認證和管理系統。GType API 是GObject的基礎系統,所以理解GType是理解GObject的關鍵。Gtype提供了注冊和管理所有基本數據類型、用戶定義對象和界面類型的技術實現。(注意:在運用任一GType和GObject函數之前必需運行g_type_init()函數來初始化類型系統。)
為實現類型定制和注冊這一目的,所有類型必需是靜態的或動態的這二者之一。靜態的類型永遠不能在運行時加載或卸載,而動態的類型則可以。靜態類型由g_type_register_static()創建,通過GTypeInfo結構來取得類型的特殊信息。動態類型則由g_type_register_dynamic()創建,用GTypePlugin結構來取代GTypeInfo,并且還包括g_type_plugin_*()系列API。這些注冊函數通常只運行一次,目的是取得它們返回的專有類的類型標識。
參考博客:
https://blog.csdn.net/hadesgin/article/details/6694868
https://www.ibm.com/developerworks/cn/linux/l-gobject/index.html
總結
以上是生活随笔為你收集整理的【GLib】GLib学习笔记(一):GLib、GObject、GType的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Ubuntu】将Ubuntu的源改为国
- 下一篇: 【GLib】GLib学习笔记(二):源码