您的位置:首页 > 运维架构 > Linux

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

2016-07-07 19:57 344 查看


要点: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


这对宏定义说明不能将所要调用的槽包括进来,我也不知道原因,包含起来就不能其多提供的槽函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IPC通信 Linux下DBUS