V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回收款员代号
GRA_SKY:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15],varVariant)); //返回消费日期时间
GRA_Date:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varVariant)); //返回消费卡号
GRA_Card:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回消费类型
GRA_Type:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回消费金额
GRA_XF_Now:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回消费余额
GRA_XF_YuE:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回卡流水
GRA_Card_Liu:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回消费机流水
GRA_Mach_Liu:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回卡区号
GRA_QuHao:= PSafeArray(V.VArray); TIntegerArray :Array[0..15] of Integer;
TWideStringArray :Array[0..15] of WideString; if MainForm.OFB3_OCX1.Get_Record_ALL(1,'115019',1000,GRA_ZhiZheng,GRA_Num,
GRA_SKY,GRA_Date,GRA_Card,GRA_Type,GRA_XF_Now,GRA_XF_YuE,GRA_Card_Liu,GRA_Mach_Liu,
GRA_QuHao)=0 then
begin
StringGridDB.Cells[5, 1]:='正在采集,请稍后.....!';
StatusPane.Caption:='正在采集'+TurnCode+'设置,请稍后.....!';
end
else
begin
StringGridDB.Cells[5, 1]:='通讯失败!';
StatusPane.Caption:='与'+TurnCode+'通讯失败!';
end; //测试过程中,发现指令能够发送去,用监控串口软件也能看到反回的数据,但是Get_Record_ALL()函数返回是通讯失败,
这是厂家提供的接口,是不是我的定义的PSafeArray类型有问题?
hr1 := SafeArrayAccessData(GRA_Card,pt1);
if Failed(hr1) then
begin
ShowMessageNow('读取Card_Liu失败');
Exit;
end ; TWideStringArray(pt1)[1]; //在这里编绎不能过,请问为什么?
Showmessage(TWideStringArray(pt1)[1]);
SafeArrayUnAccessData(GRA_Card);请大家帮忙,烦我好几天了!
GRA_SKY:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15],varVariant)); //返回消费日期时间
GRA_Date:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varVariant)); //返回消费卡号
GRA_Card:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回消费类型
GRA_Type:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回消费金额
GRA_XF_Now:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回消费余额
GRA_XF_YuE:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回卡流水
GRA_Card_Liu:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回消费机流水
GRA_Mach_Liu:= PSafeArray(V.VArray); V := TVarData(VarArrayCreate([0, 15], varInteger)); //返回卡区号
GRA_QuHao:= PSafeArray(V.VArray); TIntegerArray :Array[0..15] of Integer;
TWideStringArray :Array[0..15] of WideString; if MainForm.OFB3_OCX1.Get_Record_ALL(1,'115019',1000,GRA_ZhiZheng,GRA_Num,
GRA_SKY,GRA_Date,GRA_Card,GRA_Type,GRA_XF_Now,GRA_XF_YuE,GRA_Card_Liu,GRA_Mach_Liu,
GRA_QuHao)=0 then
begin
StringGridDB.Cells[5, 1]:='正在采集,请稍后.....!';
StatusPane.Caption:='正在采集'+TurnCode+'设置,请稍后.....!';
end
else
begin
StringGridDB.Cells[5, 1]:='通讯失败!';
StatusPane.Caption:='与'+TurnCode+'通讯失败!';
end; //测试过程中,发现指令能够发送去,用监控串口软件也能看到反回的数据,但是Get_Record_ALL()函数返回是通讯失败,
这是厂家提供的接口,是不是我的定义的PSafeArray类型有问题?
hr1 := SafeArrayAccessData(GRA_Card,pt1);
if Failed(hr1) then
begin
ShowMessageNow('读取Card_Liu失败');
Exit;
end ; TWideStringArray(pt1)[1]; //在这里编绎不能过,请问为什么?
Showmessage(TWideStringArray(pt1)[1]);
SafeArrayUnAccessData(GRA_Card);请大家帮忙,烦我好几天了!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货