我正在尝试使用 DBus 绑定通过 D-Bus 获取字节数组。你能告诉我如何实现这一目标吗?我尝试谷歌搜索但没有帮助。
字节数组包含图像文件,因此无法转换为 charbytearray
任何帮助表示赞赏
我使用 XML 做了一些测试,其中使用了类型ay
。这与 QT 绑定(使用生成的qdbusxml2cpp
) 翻译成QByteArray
然而它似乎不适用于 glib 绑定(用生成的gdbus-codegen
) 翻译为gchar *
看来你失去了之后的东西\0
- 因为不知何故它被作为字符串处理。然而你会发现:
可以使用注释 org.gtk.GDBus.C.ForceGVariant 关闭此自动映射 - 如果使用,则GVariant
总是交换而不是相应的本机 C 类型。当使用字节串(type-stringay
) 对于可能嵌入 NUL 字节的数据。
这意味着根据https://developer.gnome.org/gio/stable/gdbus-codegen.html https://developer.gnome.org/gio/stable/gdbus-codegen.html你可以将其处理为GVariant
。我通过添加注释标签来测试这一点org.gtk.GDBus.C.ForceGVariant
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
在每个参数上并且它有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)