接口定义时,使用如下定义语句,delphi会自动生成一个接口函数形式, function dd(var output:variant):variant;然后你需要做的就是在function中将要返回的字符串数据都转为variant形式 下面是我最近做的一个ocx的接口的完整形式,你可以参考一下, 注意其中tmp变量的使用 //**:*************************************************************************** //**:功能:读指定磁道数据 //**:参数:magic 0:读所有磁道,1,2,3分别读对应磁道数据 //**:*************************************************************************** function TBC.getMagicInfo(magic: Integer; var magicInfo: OleVariant): Integer; var tmp:string; i,j,ln:integer; begin if BCReader=nil then begin result := -1103; exit; end; result := BCReader.getMagicInfo(magic,tmp); ln := length(tmp); //创建返回的OleVariant时,下标必须是从0开始的 magicInfo := VarArrayCreate([0,ln-1],VarByte); for i:=1 to ln do begin j := ord(tmp[i]); magicInfo[i-1] := j; end; end;
function dd(var output:variant):variant;然后你需要做的就是在function中将要返回的字符串数据都转为variant形式
下面是我最近做的一个ocx的接口的完整形式,你可以参考一下, 注意其中tmp变量的使用
//**:***************************************************************************
//**:功能:读指定磁道数据
//**:参数:magic 0:读所有磁道,1,2,3分别读对应磁道数据
//**:***************************************************************************
function TBC.getMagicInfo(magic: Integer; var magicInfo: OleVariant): Integer;
var
tmp:string;
i,j,ln:integer;
begin
if BCReader=nil then
begin
result := -1103;
exit;
end;
result := BCReader.getMagicInfo(magic,tmp);
ln := length(tmp);
//创建返回的OleVariant时,下标必须是从0开始的
magicInfo := VarArrayCreate([0,ln-1],VarByte);
for i:=1 to ln do
begin
j := ord(tmp[i]);
magicInfo[i-1] := j;
end;
end;