在delphi不知如何调用函数,因为函数的参数是类,返回的也是类。
解决方案 »
- 500元人民币求等距线算法
- 我想买软件
- 连接数据库的问题?代码实现的?
- ListView的CustomDrawItem可以用什么消息截获?
- 导出到excel问题(急啊)
- 升级既本人来CSDN周月纪念,散分!
- 谁有用InterBase做的单机版程序,能给发一份吗?多谢!!!(带源码和数据库)
- 有谁写过打印机的驱动程序,请提供一些帮助.
- 怎样使我的程序, 在windows系统一开机就运行呢? win28,win2k下的
- TStrings怎样初始化?
- 请教了:SocketConn联接,服务端关闭,客户端程序关不了,有什么好的解决办法
- Delphi会不会步入VB的后尘,五年以后还会有人用不着delphi了?
unit ALEService;interfaceuses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;type EmptyParms = class; { "urn:epcglobal:ale:wsdl:1" }
GetSubscribers = class; { "urn:epcglobal:ale:wsdl:1" }
Poll = class; { "urn:epcglobal:ale:wsdl:1" }
Unsubscribe = class; { "urn:epcglobal:ale:wsdl:1" }
Subscribe = class; { "urn:epcglobal:ale:wsdl:1" }
GetECSpec = class; { "urn:epcglobal:ale:wsdl:1" }
Undefine = class; { "urn:epcglobal:ale:wsdl:1" }
VoidHolder = class; { "urn:epcglobal:ale:wsdl:1" }
ALEException = class; { "urn:epcglobal:ale:wsdl:1" }
SecurityException = class; { "urn:epcglobal:ale:wsdl:1"[F] }
DuplicateNameException = class; { "urn:epcglobal:ale:wsdl:1"[F] }
ECSpecValidationException = class; { "urn:epcglobal:ale:wsdl:1"[F] }
InvalidURIException = class; { "urn:epcglobal:ale:wsdl:1"[F] }
NoSuchNameException = class; { "urn:epcglobal:ale:wsdl:1"[F] }
NoSuchSubscriberException = class; { "urn:epcglobal:ale:wsdl:1"[F] }
DuplicateSubscriptionException = class; { "urn:epcglobal:ale:wsdl:1"[F] }
ImplementationException = class; { "urn:epcglobal:ale:wsdl:1"[F] }
ECSpecExtension = class; { "urn:epcglobal:ale:xsd:1" }
ECLogicalReaders = class; { "urn:epcglobal:ale:xsd:1"[A] }
ECBoundarySpecExtension = class; { "urn:epcglobal:ale:xsd:1" }
ECTrigger = class; { "urn:epcglobal:ale:xsd:1" }
ECTime = class; { "urn:epcglobal:ale:xsd:1" }
ECBoundarySpec = class; { "urn:epcglobal:ale:xsd:1" }
ECReportSetSpec = class; { "urn:epcglobal:ale:xsd:1" }
ECReportSpecExtension = class; { "urn:epcglobal:ale:xsd:1" }
ECFilterSpecExtension = class; { "urn:epcglobal:ale:xsd:1" }
ECIncludePatterns = class; { "urn:epcglobal:ale:xsd:1"[A] }
ECExcludePatterns = class; { "urn:epcglobal:ale:xsd:1"[A] }
ECFilterSpec = class; { "urn:epcglobal:ale:xsd:1" }
ECGroupSpec = class; { "urn:epcglobal:ale:xsd:1"[A] }
ECReportOutputSpecExtension = class; { "urn:epcglobal:ale:xsd:1" }
ECReportOutputSpec = class; { "urn:epcglobal:ale:xsd:1" }
ECReportSpec = class; { "urn:epcglobal:ale:xsd:1" }
ECReportSpecs = class; { "urn:epcglobal:ale:xsd:1"[A] }
ECSpec = class; { "urn:epcglobal:ale:xsd:1" }
Immediate = class; { "urn:epcglobal:ale:wsdl:1" }
Define = class; { "urn:epcglobal:ale:wsdl:1" }
ECReportsExtension = class; { "urn:epcglobal:ale:xsd:1" }
ECReportExtension = class; { "urn:epcglobal:ale:xsd:1" }
ECReportGroupExtension = class; { "urn:epcglobal:ale:xsd:1" }
ECReportGroupListExtension = class; { "urn:epcglobal:ale:xsd:1" }
ECReportGroupListMemberExtension = class; { "urn:epcglobal:ale:xsd:1" }
ECReportGroupListMember = class; { "urn:epcglobal:ale:xsd:1" }
ECReportGroupList = class; { "urn:epcglobal:ale:xsd:1" }
ECReportGroupCountExtension = class; { "urn:epcglobal:ale:xsd:1" }
ECReportGroupCount = class; { "urn:epcglobal:ale:xsd:1" }
ECReportGroup = class; { "urn:epcglobal:ale:xsd:1" }
ECReport = class; { "urn:epcglobal:ale:xsd:1" }
ECReportList = class; { "urn:epcglobal:ale:xsd:1"[A] }
ECReports = class; { "urn:epcglobal:ale:xsd:1" }
Login = class; { "urn:ale.logicalloy.com" }
LoginResult = class; { "urn:ale.logicalloy.com" }
SessionHeader = class; { "urn:ale.logicalloy.com"[H] } { "urn:epcglobal:ale:wsdl:1" }
ImplementationExceptionSeverity = (ERROR, SEVERE); { "urn:epcglobal:ale:xsd:1" }
ECReportSetEnum = (CURRENT, ADDITIONS, DELETIONS); { "urn:epcglobal:ale:xsd:1" }
ECTerminationCondition = (TRIGGER, DURATION, STABLE_SET, UNREQUEST); { "urn:epcglobal:ale:xsd:1" }
ECTimeUnit = (MS);EmptyParms = class(TRemotable)
private
public
constructor Create; override;
published
end; GetECSpecNames = EmptyParms; { "urn:epcglobal:ale:wsdl:1"[L] }
GetStandardVersion = EmptyParms; { "urn:epcglobal:ale:wsdl:1"[L] }
GetStandardVersionResult = type WideString; { "urn:epcglobal:ale:wsdl:1"[L] }
省略一部分
SessionHeader = class(TSOAPHeader)
private
FsessionId: WideString;
published
property sessionId: WideString read FsessionId write FsessionId;
end; GetALEID = EmptyParms; { "urn:ale.logicalloy.com"[L] }
GetALEIDResult = type WideString; { "urn:ale.logicalloy.com"[L] } ALEServicePortType = interface(IInvokable)
['{89261E5F-CB3D-B520-AB70-8D333AB656C3}']
function define(const parms: Define): VoidHolder; stdcall;
function undefine(const parms: Undefine): VoidHolder; stdcall;
function getECSpec(const parms: GetECSpec): GetECSpecResult; stdcall;
function getECSpecNames(const parms: GetECSpecNames): GetECSpecNamesResult; stdcall;
function subscribe(const parms: Subscribe): VoidHolder; stdcall;
function unsubscribe(const parms: Unsubscribe): VoidHolder; stdcall;
function poll(const parms: Poll): PollResult; stdcall;
function immediate(const parms: Immediate): ImmediateResult; stdcall;
function getSubscribers(const parms: GetSubscribers): GetSubscribersResult; stdcall;
function getStandardVersion(const parms: GetStandardVersion): GetStandardVersionResult; stdcall;
function getVendorVersion(const parms: GetVendorVersion): GetVendorVersionResult; stdcall;
function login(const parms: Login): LoginResult; stdcall;
function getALEID(const parms: GetALEID): GetALEIDResult; stdcall;
end;function GetALEServicePortType(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): ALEServicePortType;
implementationfunction GetALEServicePortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): ALEServicePortType;
const
defWSDL = 'E:\Study\ALE Server\ALE Server\API\src\ALEService.wsdl';
defURL = 'http://localhost:8080/api/services/ALEService';
defSvc = 'ALEService';
defPrt = 'ALEServicePort';
var
RIO: THTTPRIO;
begin
Result := nil;
if (Addr = '') then
begin
if UseWSDL then
Addr := defWSDL
else
Addr := defURL;
end;
if HTTPRIO = nil then
RIO := THTTPRIO.Create(nil)
else
RIO := HTTPRIO;
try
Result := (RIO as ALEServicePortType);
if UseWSDL then
begin
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := defPrt;
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
end;
下面省略一部分。。
我该怎么调用function define(const parms: Define): VoidHolder; stdcall;
function undefine(const parms: Undefine): VoidHolder; stdcall;
function getECSpec(const parms: GetECSpec): GetECSpecResult; stdcall;
这些函数,他们的参数是怎么声明的?
你让delphi自动生成接口!
以下是MandiQ.pas
unit MandiQ;interfaceuses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;type Area = class; { "http://represent.area.dsc.net" }
Unit_ = class; { "http://represent.area.dsc.net" }
UserSort = class; { "http://represent.area.dsc.net" }
Area = class(TRemotable)
private
Fid: Integer;
Fname: WideString;
published
property id: Integer read Fid write Fid;
property name: WideString read Fname write Fname;
end; ArrayOfArea = array of Area; { "http://represent.area.dsc.net" }
ArrayOfString = array of WideString; procedure setDscArear(const user: Area); stdcall;先在调用的单元引用它,
申明一个变量.var AR:Area ;
Ar.id:='001';
AR.name:='张三';
如何调用setDscArear(HTTPRIO1 as 接口).setDscArear(AR);//这样就调用了Web Service啦/