2012-09-21 36 views
0

我正在使用Qt在Linux構建機器上擴展DBus接口。現有的接口工作正常,我需要添加另一個參數qdbusxml2cpp的參數的最大數量

的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調用。

如果我將其更改爲六個,七個或八個項目,則XML將進行編譯,但如果將其增加到九個,它將崩潰。

我沒有更改除XML代碼之外的其他配置文件。

怎麼了?是否有八個參數的限制?

回答

0

找到它;是有一定限度的,這要歸功於QDBusPendingReply

「的QDBusPendingReply是一個具有多達8個模板參數的模板類。這些參數是將被用於提取回復的數據內容的類型。」

所以對我來說不超過8個參數:(