我的问题怎么变成这样了。。我的问题是这样:
如何定义一个二进制流啊。
我用以下的代码:
Byte *Buffer;
TFileStream *FileTemp1=new TFileStream("E:\\temp.bmp",fmOpenReadWrite);
   TFileStream *FileTemp2=new TFileStream("E:\\temptest.bmp",fmCreate|fmOpenReadWrite|fmShareDenyNone);   FileTemp1->Read(Buffer,BackCode);
   FileTemp2->Write(Buffer,BackCode);
其中BackCode为文件大小。
想试试这样COPY一个文件。
实现生成一个新的temptest.bmp。执行后发现文件大小都一样。可是打开时候
说“文件格式无效”。怎么回事呢。

解决方案 »

  1.   

    好象是temptest.bmp的文件格式在运行中发生了变化,造成了“文件格式无效”。但不得其中原因! Sorry~~~~~!
      

  2.   

    你的Buffer指针没有分配内存啊!那么读出的东西没地方缓存。
    可以这样:Byte *Buffer = new char[300000];  //新建一个300K大小的缓冲区,其值比文件大小大就行。
    TFileStream *FileTemp1=new TFileStream("E:\\temp.bmp",fmOpenReadWrite);
      TFileStream *FileTemp2=new TFileStream("E:\\temptest.bmp",fmCreate¦fmOpenReadWrite¦fmShareDenyNone);  FileTemp1->Read(Buffer,BackCode);
      FileTemp2->Write(Buffer,BackCode);
    delete Buffer;