RT:我想打开一个文本文档然后在对应的内存块中找到这个部分请问这个文件在内存中的起始地址怎么获得?然后怎么得到这片内存区域每个byte的数据呢?

解决方案 »

  1.   

    #include <fstream>
    #include <string> DWORD dwSize; std::ifstream FileInput; FileInput.open( "FileName", std::ios::binary|std::ios::ate ); // 打开文件,使文件指针指向文件末尾

    dwSize = FileInput.tellg(); // 當前文件指針 FileInput.seekg( 0 ); // 指向文件第一個字節 BYTE *pBuffer = new BYTE[dwSize];
    FileInput.read( (BYTE *)pBuffer, dwSize );
    delete [] pBuffer; FileInput.close(); //-------------------------------------------------------------------------------

    std::ofstream FileOutput;

    FileOutput.open( "FileName", std::ios::binary );
    FileOutput.write( (BYTE *)pBuffer, dwSize );

    //FileOutput.seekp(); FileOutput.close();
      

  2.   

    要读进来,比如用ReadFile读到内存里.
      

  3.   

    是你自己想读?那内存地址是你自己指定的啊,想看内容光打开不行,还得读,读的时候就用到内存了,看看1楼例子,那个pBuffer 就是内存地址
      

  4.   

    #1楼开头少加一行:#include "windows.h"
      

  5.   


    哦,想看内容光打开不行,还要读。那打开这个动作有什么意义呢?他对应的是  CFile::Open 这个函数么?还有就是用CFile类能对磁盘文件进行读写吧,那么是不是在调用CFile的一些读写方法时,他会自动为你开辟一片内存来进行读写操作么?如果是的话那这个内存有多大呢?是能容纳整个文件么?最后我对CFile 和 CMemfile之间的区别搞的不是很清楚啊
      

  6.   

    To renxu350:好的,谢谢,我试试看