发现delphi6关于web service的一个巨bug。(0分)

  • 主题发起人 主题发起人 tigerricky
  • 开始时间 开始时间
T

tigerricky

Unregistered / Unconfirmed
GUEST, unregistred user!
昨天,本人创建了一个web service server,其中声明了一个接口函数。
function fGetFileNames(out icount:Integer):TstringDynArray;stdcall;在客户端调用时用
web service 的swdlimporter导入http://localhost:1024/pWSDynArray.DynArrayDemoServer/wsdl/IDynArrayDemoServer
竟然发现get回来的方法变了样!变为 function fGetFileNames(return: TStringDynArray): Integer; stdcall;
观察http://localhost:1024/pWSDynArray.DynArrayDemoServer/wsdl/IDynArrayDemoServer中的wsdl对该方法的描述为:
- <message name="fGetFileNamesResponse">
<part name="icount" type="xs:int" />
<part name="return" type="ns1:TStringDynArray" />
</message>
get回来的方法竟然把参数及返回值的次序给掉转了。客户端根本不能调用web service 中的接口方法。
后来我把方法换成过程函数 procedure GetFileNames(out icount: Integer; out aa: TStringDynArray); stdcall;
这次get回来的方法正确了。 是 procedure GetFileNames(out icount: Integer; out aa: TStringDynArray); stdcall;
客户端可以调用了。
我的d6可是打了pack1,pack2两个pack啊!d6不会搞出这样大的一个bug吧!不知大家有没有碰到这样的问题!
 
后退
顶部