问题如下:这是我在一本书上看到的源程序,但为什么在我的集资上无法通过编译?
说是  在 Clear:=Clearcommerror(hcom,lpErrors,@Coms);和ReadFile(hCom,Read_Buffer,cbNum,ReadNumber,lpol);出现
Types of actual and formal var parameters must be identical
源程序如下:unit comdemou;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
const
     Wm_commNotify=Wm_User+12;
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    Procedure comminitialize;
    Procedure MsgcommProcess(Var Message:Tmessage); Message Wm_commnotify;
    { Private declarations }
  public
    { Public declarations }
  end;
  // 线 程 声 明
  TComm=Class(TThread)
  protected
     procedure Execute;override;
  end;
var
  Form1: TForm1;
  hcom,Post_Event:Thandle;
  lpol:Poverlapped;
implementation
{$R *.DFM}
Procedure TComm.Execute;    // 线 程 执 行 过 程
var
dwEvtMask:Dword;
Wait:Boolean;
Begin
fillchar(lpol,sizeof(toverlapped),0);
While True do Begin
      dwEvtMask:=0;
      Wait:=WaitCommEvent(hcom,dwevtmask,lpol);  // 等 待 串 行 口 事 件;
      if Wait Then Begin
         waitforsingleobject(post_event,infinite);      // 等 待 同 步 事 件 置 位;
         resetevent(post_event);                    // 同 步 事 件 复 位;
         PostMessage(Form1.Handle,WM_COMMNOTIFY,0,0);// 发 送 消 息;
         end;
      end;
end;procedure Tform1.comminitialize;                     // 串 行 口 初 始 化
var
lpdcb:Tdcb;
Begin
hcom:=createfile('com2',generic_read or generic_write,0,nil,open_existing,
                  file_attribute_normal or file_flag_overlapped,0);// 打 开 串 行 口
    if hcom=invalid_handle_value then
    else
       setupcomm(hcom,4096,4096); // 设 置 输 入, 输 出 缓 冲 区 皆 为4096 字 节
        getcommstate(hcom,lpdcb);  // 获 取 串 行 口 当 前 默 认 设 置
        lpdcb.baudrate:=2400;
        lpdcb.StopBits:=1;
        lpdcb.ByteSize:=8;
        lpdcb.Parity:=EvenParity;    // 偶 校 验
        Setcommstate(hcom,lpdcb);
        setcommMask(hcom,ev_rxchar); 
     // 指 定 串 行 口 事 件 为 接 收 到 字 符;
end;
Procedure TForm1.MsgcommProcess(Var Message:Tmessage);
var
Clear:Boolean;
Coms:Tcomstat;
cbNum,ReadNumber,lpErrors:Integer;
Read_Buffer:array[1..100]of char;
Begin
Clear:=Clearcommerror(hcom,lpErrors,@Coms);
if Clear Then Begin
   cbNum:=Coms.cbInQue;
   ReadFile(hCom,Read_Buffer,cbNum,ReadNumber,lpol);
   // 处 理 接 收 数 据
   SetEvent(Post_Event);         // 同 步 事 件 置 位
   end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
comminitialize;
post_event:=CreateEvent(nil,true,true,nil); // 创 建 同 步 事 件;
Tcomm.Create(False);            // 创 建 串 行 口 监 视 线 程;
end;
end.