我使用dbus-cxx通过dbus进行方法调用。现在有一些方法返回多个参数,我无法弄清楚如何在第一个参数旁边接收任何参数。
我初始化代理方法:
DBus::MethodProxy<int>& info_proxy = *(object->create_method<int>(ServerName, "Info"));
当我获取返回值时,它只是这种情况下三个可能输出的第一个值。
描述方法的XML如下所示:
<method name="Info">
<arg type="i" direction="out" name="rate"/>
<arg type="i" direction="out" name="freq"/>
<arg type="i" direction="out" name="nch"/>
</method>
从QDBusViewer中调用方法会传递输出Arguments: 1813099, 44100, 2
,因此它提供了三个输出,但我无法弄清楚如何访问这些输出。
编辑:我通过使用dbus-cxx-xml2cpp工具实现了它,我得到了一个使用DBus::CallMessage
而不是DBus::MethodProxy
的方法定义。生成的答复包含方法返回的所有参数。
答案 0 :(得分:0)
我通过使用dbus-cxx-xml2cpp
工具实现了它,我得到了一个使用DBus::CallMessage
而不是DBus::MethodProxy
的方法定义。生成的答复包含方法返回的所有参数。