如何实现呢?
我的代码执行不了啊var
 ms:TMemoryStream ;
 bufs : array of byte;
begin
 if dlgOpenPicInsert.Execute then
 begin
   ms:=TMemoryStream.Create;
   ms.LoadFromFile(dlgOpenPicInsert.FileName);
   ShowMessage(IntToStr( ms.Size));
   ms.Read(bufs,ms.size); //报错啊
 end;
end;

解决方案 »

  1.   

    bufs 没有申请内存,GetMem(bufs, ms.size);
      

  2.   

       ms:=TMemoryStream.Create;
       ms.LoadFromFile(dlgOpenPicInsert.FileName);
       ShowMessage(IntToStr( ms.Size));
       ms.position := 0;  //加一句
       ms.Read(bufs,ms.size); //报错啊
      

  3.   

    how?
    报错[DCC Error] Unit1.pas(439): E2008 Incompatible types
      

  4.   

    var
      ms: TMemoryStream;
      a: array of Byte;
    begin
      ms := TMemoryStream.Create;
      ms.LoadFromFile('xxxx');
      SetLength(a, ms.Size);
      ms.Position := 0;
      Move((PByte(ms.Memory))^, a[0], ms.Size);
    end;
      

  5.   

    你的是动态数组,不用SetLength分配一下内存能不错吗
      

  6.   


    procedure TForm2.Button1Click(Sender: TObject);
    var
     ms:TMemoryStream ;
     bufs : array of byte;
    begin
      ms:=TMemoryStream.Create;
      ms.LoadFromFile('G:\notepad.exe');
      ShowMessage(IntToStr( ms.Size));
      SetLength(bufs,ms.Size);//分配内存
      ms.Position:=0;
      MoveMemory(@bufs[0],ms.Memory,ms.Size);
      ms.Free;
    end;
      

  7.   

    var
     ms:TMemoryStream ;
     bufs : array of byte;
    begin
     if dlgOpenPicInsert.Execute then
     begin
       ms:=TMemoryStream.Create;
       ms.LoadFromFile(dlgOpenPicInsert.FileName);
       ShowMessage(IntToStr( ms.Size));
    SetLength(bufs,ms.Size);
       ms.Read(bufs,ms.size); //不报错啊
     end;
    end;
      

  8.   

    SetLength(bufs, ms.Size);
    ms.Read(bufs[0], ms.Size);