function FileRead(Handle: Integer; var Buffer; Count: LongWord): Integer;
主要是var buffer的处理?

解决方案 »

  1.   

    var buffer: longword等于
    buffer: ^longword;
      

  2.   

    楼上要看清,
    不是var buffer: longword
    而是var buffer; count :longword
      

  3.   

    var buffer: PChar;
    PChar类型在delphi和pb之间可通用。
      

  4.   

    楼主定义成这样试试
    buffer: pchar;
      

  5.   

    大家注意: 这是一个API函数,因为PB里对文件操作不方便,所以我想将它封装成DLL
      

  6.   

    pb没有用过,delphi测试成功
    dll定义
    procedure MyFileRead(h:THandle;buf:pchar;Count:longword);stdcall;
    begin
      fileread(h, buf^,count);
    end;exe定义
    procedure Myfileread(h:THandle;buf:pchar;Count:longword);stdcall;external 'test.dll';procedure TForm1.Button1Click(Sender: TObject);
    var
      iFileHandle: Integer;
      iFileLength: Integer;
      xx: PChar;
    begin
      iFileHandle := fileopen('d:\test.txt',fmOpenRead);
      iFileLength := fileseek(iFileHandle,0,2);
      FileSeek(iFileHandle,0,0);
      getmem(xx,iFileLength+1);
      Myfileread(iFileHandle,xx,iFileLength);
      FileClose(iFileHandle);
      ShowMessage(xx);
      FreeMem(xx);
    end;