我正在为以下问题寻找一个好的解决方案:
我偶然发现了 GType 以及在运行时向现有类型添加私有数据成员的示例。这些例子很直接( link ). 所以我考虑添加这样的私人字段( origin enum)插入GKeyFile的GType中,基本上转换为每个键/值存储对中的值的(另一个GType?)类型,但我不知道应该怎么做。
GType
origin
有 G_TYPE_KEY_FILE 宏,返回 G类型 的 GKeyFile 然而,从哪里开始呢?
G类型
GKeyFile
除非控制类型的实现,否则无法向类型添加私有结构。你无法控制实施 GKeyFile (它是GLib内部的),所以你不能这样做。
我认为你最好写一门涵盖 GKeyFile 并在其上实现自己的逻辑。新类将有一个指向内部 GKeyFile 实例,但不会从中导出 GKeyFile ,因为其他代码不需要知道您的数据存储实际上是作为密钥文件实现的。