static BOOL SaveBitmap( const char* strFile, const BYTE* Bitmap )
{
 FILE* fp = fopen( strFile, "wb" );
 if (fp) {
   BYTE Header[256];
   GenBmpFileHeader( Header, 640, 480, 8 );
   fwrite( Header, sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER), 1, fp );   DWORD Color[256];
   GenBmpColor( Color );
   fwrite( Color, sizeof(DWORD), 256, fp );   fwrite( Bitmap, 1, 640*480, fp );   fclose( fp );
   return TRUE;
 }
 return FALSE;
}

解决方案 »

  1.   

    function SaveBitmap(const strFile: PChar; const Bitmap: PByte):BOOL;
    var
      fp: Integer;
      Header: Array [0..255] of Byte;
      Color: array [0..255] of DWORD;
    begin
      Result := false;
      fp := fileopen(strFile, fmOpenWrite );
      if (fp <> -1) then begin
        GenBmpFileHeader(@Header[0], 640, 480, 8 );
        FileWrite(fp,Header, sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER));
        GenBmpColor(Color);
        FileWrite(fp, Color, sizeof(DWORD)*256);
        FileWrite(fp, Bitmap, 640*480);
        fileclose(   fp   );
        result := TRUE;
      end;
    end;
      

  2.   

    function SaveBitmap(const strFile:PChar;const Bitmap:PByte):Boolean;
    var
      FHandle:THandle;
      Header:array[0..255] of char;
      Color:array[0..256] of DWORD;
    begin
      Result:=False;
      FHandle:=FileOpen( strFile, fmOpenWrite or fmShareDenyNone );
      if FHandle >0 then
      begin
        GenBmpFileHeader( Header,   640,   480,   8 );
        FileWrite( Fhandle, Header, sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER) );
        GenBmpColor( Color );
        FileWrite( Fhandle, Color, sizeof(DWORD) );
        FileWrite( Fhandle, Bitmap, 640*480 );
        FileClose( FHandle );
        Result:=True;
      end;
    end;