在Linux下面实现QDbus通信机制服务对象注册失败

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/uriel_chiang/article/details/51853880

这里写图片描述
要点:QDBUS通信机制的作为服务端的使用分为3个步骤:
if(!QDBusConnection::sessionBus().isConnected()) //1建立与DBUS的链接
if(QDBusConnection::sessionBus().registerService( //2注册服务
“hit.test.middleware”))
MiddleWareMain w;
QDBusConnection::sessionBus().registerObject(“/”, &w, QDBusConnection::ExportAllSlots); //3注册服务对象
分析:
1, 采用一般新建项目可以正确注册成功;
试图:改此项目,刚开始没问题,过了几次之后文件一次性添加很多(基本添加完毕),项目中服务对象就无法注册成功。
2, 在此项目中新建一个类文件,这个类的对象可以正确注册服务,但是不稳定,用相同的方法再写一个文件可能不能成功注册,并没有发现这两种方法有什么区别。

解决方案:

#ifdef Q_OS_LINUX
public slots:
    int xxxx();
#endif

这对宏定义说明不能将所要调用的槽包括进来,我也不知道原因,包含起来就不能其多提供的槽函数

展开阅读全文

没有更多推荐了,返回首页