2016-10-22 38 views
0

我使用Delphi編寫獨立SOAP服務器。它包含服務器的函數返回的版本,例如:Delphi SOAP服務器更改輸出參數名稱

function TMySOAP.GetVersion: string; stdcall; 
begin 
    Result := '1.0'; 
end; 

根據某些規範函數的輸出值應該有名字「結果」,所以WSDL應該是這樣的:

<message name="GetVersion3Response"> 
    <part name="Result" type="xs:string"/> 
</message> 

但由於Delphi使用標識符「結果」在它自己的目的,我的服務器生成WSDL旁邊:

<message name="GetVersion3Response"> 
    <part name="return" type="xs:string"/> 
</message> 

輸出參數的名稱在specificati是硬編碼由於名稱不匹配,客戶端程序無法正確處理我的服務器的答案。

有沒有辦法將輸出參數的名稱改爲'Result'?

回答

1

查找答案由我自己:

procedure TMySOAP.GetVersion(out Result: string); stdcall; 
begin 
    Result := '1.0'; 
end; 

似乎它的工作原理。

+0

事實上,DLL永遠不應該在其邊界上傳遞一個「字符串」,特別是不能作爲函數結果。 –