C++ 在dbus cxx中的方法调用后接收多个参数

C++ 在dbus cxx中的方法调用后接收多个参数,c++,dbus,C++,Dbus,我使用dbus进行方法调用。现在有一些方法返回多个参数,我不知道如何接收第一个参数之外的任何参数 我初始化代理方法: DBus::MethodProxy<int>& info_proxy = *(object->create_method<int>(ServerName, "Info")); DBus::MethodProxy&info\u proxy=*(对象->创建方法(ServerName,“info”); 当我获取返回值时,它

我使用dbus进行方法调用。现在有一些方法返回多个参数,我不知道如何接收第一个参数之外的任何参数

我初始化代理方法:

DBus::MethodProxy<int>& info_proxy = *(object->create_method<int>(ServerName, "Info"));
DBus::MethodProxy&info\u proxy=*(对象->创建方法(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中调用该方法将提供输出
参数:181309944100,2
,因此它提供了三个输出,但我不知道如何访问这些输出


EDIT:我使用工具dbus-cxx-xml2cpp获得了一个方法定义,它使用
dbus::CallMessage
而不是
dbus::MethodProxy
。生成的回复包含该方法返回的所有参数。

我通过使用工具
dbus-cxx-xml2cpp
获得了一个使用
dbus::CallMessage
而不是
dbus::MethodProxy
的方法定义。生成的回复包含该方法返回的所有参数。

我通过使用工具
dbus-cxx-xml2cpp
获得了一个使用
dbus::CallMessage
而不是
dbus::MethodProxy
的方法定义。生成的回复包含该方法返回的所有参数。

为什么不使用代码生成器(
dbus-cxx-xml2cpp
工具)从XML生成类?但是如果您是手工操作,我希望看到类似的情况:
DBus::MethodProxy
。我在构建该工具时遇到了一些困难,因此我决定手工操作。我有你之前建议的函数,但是当我运行程序时,抛出一个'std::shared_ptr'实例后调用了
terminate,我没有发现问题。如果很难构建,那么使用操作系统附带的dbus包装器是有意义的:它可能是
dbus-c++
(或查找打包的
dbuscxx
)。生成错误是什么?在
DBu中错误是什么‌​s::Error
exception?当我从AUR安装它时,我还得到了代码生成器。生成的方法帮助很大,因为正确的方法是调用消息而不是简单的方法调用。此调用的答案是包含3个参数的流。您可以将其作为答案发布并接受。为什么不使用代码生成器(
dbus-cxx-xml2cpp
tool)?但是如果您是手工操作,我希望看到类似的情况:
DBus::MethodProxy
。我在构建该工具时遇到了一些困难,因此我决定手工操作。我拥有您之前建议的功能,但当我运行程序时,在抛出“std::shared\u ptr”的实例后,会调用
terminate我没有发现问题。如果很难构建,那么使用操作系统附带的dbus包装器是有意义的:它可能是
dbus-c++
(或者找到一个打包的
dbus cxx
)。构建错误是什么?DBu中的错误是什么‌​s::Error
exception?当我从AUR安装它时,我还得到了代码生成器。生成的方法非常有用,因为正确的方法是调用消息而不是简单的方法调用。此调用的答案是包含3个参数的流。您可以将其作为答案发布并接受。