0

Qt を使用して Linux ビルド マシンで DBus インターフェイスを拡張しています。既存のインターフェースは正常に機能し、別のパラメーターを追加する必要があります

XML 生成メソッドの生成は次のとおりです。

<method name="get_card_info">
  <arg type="b" name="success" direction="out" />      
  <arg type="s" name="version" direction="out" />
  <arg type="s" name="serial" direction="out" />
  <arg type="s" name="BeginDate" direction="out" />
  <arg type="s" name="ExpirationDate" direction="out" />
  <arg type="s" name="RenewalDate" direction="out" />
  <arg type="s" name="ZipCode" direction="out" />
  <arg type="s" name="ZipCodeExtension" direction="out" />
  <!--  <arg type="u" name="cardStatus" direction="out" />  -->
</method>

コメントアウトされた行のコメントを解除するまで、コードは正常に機能し、その時点で qdbusxml2cpp は次のように報告します。

interface_dbus_p.h:39:103: error: wrong number of template arguments (9, should be 8)

これは、この関数へのすべての呼び出しをコメントアウトしたとしてもです。実際、これはリンク コードがコンパイルされる前です。これはすべてqdbusxml2cpp呼び出しによるものです。

これを 6、7、または 8 項目に変更すると XML はコンパイルされますが、9 項目に増やすとクラッシュします。

XML コード以外の構成ファイルは変更していません。

どうしたの?パラメーターは 8 つまでという制限はありますか?

4

1 に答える 1

0

それを見つけた; はい、 QDBusPendingReplyのおかげで制限があります

「QDBusPendingReply は、最大 8 つのテンプレート パラメーターを持つテンプレート クラスです。これらのパラメーターは、返信のデータの内容を抽出するために使用される型です。」

したがって、私にとっては8つ以下のパラメーターです:(

于 2012-09-21T10:21:56.707 に答える