如下几个问题:
1、关于out修饰符的使用:
     在普通的Windows应用程序中,我使用function GetStr(out aStr: string): string;声明一个函数,则调用该函数之后,函数的返回值和参数aStr各自有不同的返回值,在Windows应用程序中,这应该是正确的结果;
     让我感到困惑的是:在Web Service应用程序中,服务器端我声明的接口为:function GetWSMsg(out aStr: string): string; stdcall;
   如果在客户端我使用了MS Soap Tool Kit去调用该接口方法,那么函数的返回值和参数aStr的返回值居然是一样的字符串,即都是函数的Result的值。aStr的值不见了。
2、关于var修饰符的使用:
     问题出在Web Service类型的应用程序中。如果我使用var修饰符声明服务器端接口为:function GetWSMsg(var aStr: string): string; stdcall;
   那么,如果我直接使用Delphi自带的控件THTTPRIO在普通的Windows应用程序客户端中去调用这个接口方法,那么参数aStr的返回值是正确的。
     然而,当我使用MS Soap Tool Kit去调用这个接口方法的时候,就会出现一个错误:该错误的大致意思是说参数不对,Incorrect Number等等。
3、关于在CGI类型的应用程序中使用COM的问题
     问题是这样的:CGI类型的Web Service程序中,不能调用远程组件对象,提示RPC不能服务。我做了如下的尝试:
     
     我使用Delphi 6创建了CGI类型的Web Service服务器端程序,该程序中使用了CreateRemoteComObject调用一个远程COM对象。 不过,在客户端调用的时候就会出现错误。如果改用CreateComObject的方法调用组件对象,则不会出现错误。
     同样的程序,如果我用WAD类型的Web Service程序,则CreateRemoteComObject和CreateComObject就都调用正常了。  请大家针对这几个问题,分析分析,给一些见解出来,谢谢。