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);请大家帮忙,烦我好几天了!