Gobject 的函数 G_TYPE_INSTANCE_GET_PRIVATE 已弃用
Posted
技术标签:
【中文标题】Gobject 的函数 G_TYPE_INSTANCE_GET_PRIVATE 已弃用【英文标题】:Gobject's function G_TYPE_INSTANCE_GET_PRIVATE is deprecated 【发布时间】:2021-11-30 08:14:29 【问题描述】:我想建立 dbusmenu 库,但我不能,因为标题中的函数已被弃用。所有程序员都应该改用 G_ADD_PRIVATE。当然我找到了解决方法,但我想修复代码(这是一个用于 Debian、MATE 等的库)
我假设我不能替换宏,这太容易了,而且没有意义:).. 那么,有没有人可以为我提供一个如何在 GObjects 中使用 G_ADD_PRIVATE 的示例?谢谢
这是已弃用代码的示例:
static void
dbusmenu_defaults_init (DbusmenuDefaults *self)
self->priv = DBUSMENU_DEFAULTS_GET_PRIVATE(self);
self->priv->types = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify)g_hash_table_destroy);
在哪里
#define DBUSMENU_DEFAULTS_GET_PRIVATE(o) \
(G_TYPE_INSTANCE_GET_PRIVATE ((o), DBUSMENU_TYPE_DEFAULTS, DbusmenuDefaultsPrivate))
【问题讨论】:
【参考方案1】:the documentation for G_ADD_PRIVATE
中有一个例子。
【讨论】:
以上是关于Gobject 的函数 G_TYPE_INSTANCE_GET_PRIVATE 已弃用的主要内容,如果未能解决你的问题,请参考以下文章