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
我會記住這一點。 –