gpt4 book ai didi

c++ - DBus Glib,发送带有嵌套结构的信号

转载 作者:太空狗 更新时间:2023-10-29 23:09:09 25 4
gpt4 key购买 nike

我正在 linux 上用 c++ 语言开发一个应用程序。我想像这样发送一个信号:

<signal name="EmitSignal">
<arg type="(u(i)uussssu)" name="t_struct_of_signal" direction="out" />
</signal>

type="(u(i)uussssu)" 中的第二个参数是枚举类型。

我正在尝试注册一个结构

#define STRUCT_OF_SIGNAL (dbus_g_type_get_struct ("GValueArray", \
G_TYPE_UINT, \
G_TYPE_POINTER, \
G_TYPE_UINT, \
G_TYPE_UINT, \
G_TYPE_STRING, \
G_TYPE_STRING, \
G_TYPE_STRING, \
G_TYPE_STRING, \
G_TYPE_UINT, \
G_TYPE_INVALID))

但我有一些错误:

** (process:21792): WARNING **: No marshaller registered for type "gpointer"
** (process:21792): WARNING **: failed to marshal parameter 1 for signal EmitSignal

有人可以帮助我吗?

非常感谢

最佳答案

我解决了:我将 G_TYPE_VALUE_ARRAY 更改为 dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_INVALID)

然后,这是:

g_value_init(g_value_array_get_nth(ret, 0), G_TYPE_VALUE_ARRAY);

现在,它是:

g_value_init(g_value_array_get_nth(ret, 0), dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_INVALID));

G_TYPE_VALUE_ARRAYGValueArray 结构可能不兼容。

关于c++ - DBus Glib,发送带有嵌套结构的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6466817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com