unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,StdCtrls, Buttons, ExtCtrls, Menus, ToolWin, ComCtrls, ImgList, jpeg,Comobj;type
  TAAA = Array[0..7] of Byte;
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  strResult1:Array of Byte;
  strResult2:Array of byte;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
vText : Variant;
strResult:String;
intNH :Integer;
intRecordnum : Integer;
 Num:Variant;
 pbTemp:pByte;
 bR:Boolean;
begin
// Setlength(strResult1,1000);
 Setlength(strResult2,1000);
 try
 vText := CreateOleObject('ThingDemo.Dialogs');
 except
   ShowMessage('something wrong');
   Exit;
 end;
// pbTemp:=strResult2
 vText.portNum := '2';
 vText.CommRead22(strResult1,strResult2);
// vText.ReadComm(Thandle(strResult1),Thandle(strResult2)); 
(问题就在这里,strResult2是一个二维数组,1是一个一维数组,编译就在这通不过)
 If strResult = 'already' Then
        Showmessage('fgtestok already');
{    Else
        intNH = newDialog.getNH
        intRecordnum = newDialog.getRecordNum
        MsgBox "readtime" & newDialog.getTime
        MsgBox "fgok/" & intNH & "/" & intRecordnum
        Dim i As Integer
        For i = 0 To intRecordnum - 1
        MsgBox "Nh:" & Dec2Hexs(strResult2(i, 7)) _
                        & Dec2Hexs(strResult2(i, 6)) _
                        & Dec2Hexs(strResult2(i, 5)) _
                        & Dec2Hexs(strResult2(i, 4))
        Next i    End If   }
end;end.