程序在Vb下调用可以通过,其中obj为全局COM对象
Dim buffer() As Byte
Dim rrbuffer(100) As Byte
Dim rlen As Long
Dim ii As Longbuffer = "test"
report = ""
Obj.testfun(12, buffer, 30, rrbuffer, rlen)
testfun对应的参数为,in integer,in OleVariant,out OleVariant, out integer但在delphi中我使用相同方法却老是报类型错误,请各位达人帮我解决,delphi代码如下
var
OutInfos: OleVariant;//发送内容
strsend : OLEVARIANT;//发送字符串
sendLen: Longint;//接收内容
OutLen: Longint;//接收长度
begin
sendlen := 26;
strsend := VarArrayCreate([low(sendinfo),high(sendinfo)],varByte);
strsend[1] := 5;
strsend[2] := 64;
strsend[3] := 1;
strsend[4] := 79;
strsend[5] := 78;
strsend[6] := 13;
obj.testfun(25,sendinfo,sendlen,outinfos,OutLen);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
end;
这句运行时报错“类型错误”,该如何写?
Dim buffer() As Byte
Dim rrbuffer(100) As Byte
Dim rlen As Long
Dim ii As Longbuffer = "test"
report = ""
Obj.testfun(12, buffer, 30, rrbuffer, rlen)
testfun对应的参数为,in integer,in OleVariant,out OleVariant, out integer但在delphi中我使用相同方法却老是报类型错误,请各位达人帮我解决,delphi代码如下
var
OutInfos: OleVariant;//发送内容
strsend : OLEVARIANT;//发送字符串
sendLen: Longint;//接收内容
OutLen: Longint;//接收长度
begin
sendlen := 26;
strsend := VarArrayCreate([low(sendinfo),high(sendinfo)],varByte);
strsend[1] := 5;
strsend[2] := 64;
strsend[3] := 1;
strsend[4] := 79;
strsend[5] := 78;
strsend[6] := 13;
obj.testfun(25,sendinfo,sendlen,outinfos,OutLen);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
end;
这句运行时报错“类型错误”,该如何写?
声明成olevariant
HRESULT TestFun([in] long handle,
[in] VARINAT strInParam,
[in] long iInParamLen,
[out] VARINAT* strOutParam,
[out] long* piOutParamLen,
[out,retval] VARIANT_BOOL *pbResultVal);