0
我一直在访问暴露的成员函数,对应于通过D-Bus公开的对象。我可以通过哪种方式访问(公共)数据成员?如果是这样,怎么样?我们可以通过D-bus访问数据成员和指向对象的指针吗?
此外,我读这里 -
[http://www.qtcentre.org/archive/index.php/t-24238.html]
,它不可能超过d总线传递指针。只是想确认一样。
我一直在访问暴露的成员函数,对应于通过D-Bus公开的对象。我可以通过哪种方式访问(公共)数据成员?如果是这样,怎么样?我们可以通过D-bus访问数据成员和指向对象的指针吗?
此外,我读这里 -
[http://www.qtcentre.org/archive/index.php/t-24238.html]
,它不可能超过d总线传递指针。只是想确认一样。
是否可以访问对象的数据成员取决于它们是否被声明为public
或private
。查看头文件中的类(或结构)定义。这与事实无关,即类别映射到D-Bus上的某个事实,尽管假设类可能错误地编写并允许您执行D-Bus不支持的操作,在这种情况下,I无法从提供的信息中知道会发生什么。
class DBusThing
{
int seeBelowMember;
public:
int accessibleMember;
int accessibleMethod(int argument);
private:
int inaccessibleMember;
}
void someFunc()
{
DBusThing foo;
int ret = foo.accessibleMethod(5); // legal
foo.accessibleMember=5; // legal
foo.inaccessibleMember=5; // illegal
foo.seeBelowMember=5; // illegal because DBusThing is declared class.
// If DBusThing had been declared struct, seeBelowMember would be accessible.
}
我认为可能是班级写得不正确,并且会阻止你尝试不可能。
是的,我同意私人成员无法访问。我所关心的是如何访问公共网站。我使用QDBusMessage :: createMethodCall(const QString&service,const QString&path,const QString&interface,const QString&method)方法调用Qt-Dbus上的方法。在这种情况下,我无法确定如何访问数据成员?我想你在我编辑我的问题之前张贴了。无论如何,感谢您的快速响应。 –
@只有在编辑之前确实发布过。在堆栈溢出时,这里有一个相当健康的QT标签。当你有关于QT库的问题时,说出来并使用标签将会很有用。 – 01d55
我会记住这一点。 –