zoukankan      html  css  js  c++  java
  • 关于 QtDBus 的种种

      QtDbus用于进程间的通信,可靠、稳定。具体实现也很方便,文章http://www.cuteqt.com/blog/?p=167http://www.cuteqt.com/blog/?p=178里讲得非常清楚。

    但是实现起来还是遇到了一些麻烦。

    1. 远程调用函数不能使用指针类型作为参数或者返回值。在XXX.h函数里加入诸如 int* func(); 或 void func(int *);之类的函数,然后使用qdbuscpp2sxml工具生成xml文件时,可以发现这样的函数根本没有写入xml文件中。
    2. 返回值和参数的总个数不能超过两个。否则的话虽然可以编译通过,但是运行时会报错说找不到函数。

    对于问题1,貌似可以通过将指针类型的数组放在一个vector里,然后就可以用了。但是如果只是传递指针的话,由于进程之间无法共用内存,所以也就没有什么意义了。

    对于问题2,在使用dbuscpp2xml和dbusxml2cpp工具生成Adaptor和Interface以后,这些工具会将qreal类型转换成double类型,所以调用的时候会说找不到函数。这是就自己到Adaptor和Interface的文件里找到该函数,然后把里面的double改成qreal就好了。对于其他数据类型也可以有类似的处理。

    除此之外,貌似这种方法对远程函数的参数数目有一定的限制,不能太多。

  • 相关阅读:
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    实现微信小程序和支付宝小程序二维码合并
    Solr教程:1.下载和安装
    如何生成漫画风图片无需下载APP无需PS无需电脑
  • 原文地址:https://www.cnblogs.com/sunshy/p/2460604.html
Copyright © 2011-2022 走看看