程序中有个地方要把数据存到磁盘文件中,然后另外一个函数以这个文件名为参数,对文件中的数据进行处理,我的问题是,有没有办法把数据存到内存中,直接“模拟”成一个磁盘文件,然后直接在内存中进行处理。

解决方案 »

  1.   

    CMemFile大概能够满足你的要求。
      

  2.   

    HANDLE CreateFileMapping(
      HANDLE hFile,                       //物理文件句柄
      LPSECURITY_ATTRIBUTES lpAttributes, //安全设置
      DWORD flProtect,                    //保护设置
      DWORD dwMaximumSizeHigh,            //高位文件大小
      DWORD dwMaximumSizeLow,             //低位文件大小
      LPCTSTR lpName                      //共享内存名称
    );
      

  3.   

    内存映射文件太过麻烦,如果进程间共享内存不是你需要的,那么用CMemFile就足够了.
      

  4.   

    CMemFile没用过,我先去试试看
      

  5.   

    试完了,但是有个新问题,现有的函数传递的参数是文件指针,比如 fopen("c:\\a.txt","wb") 所返回的指针用了这个cmemfile类之后就发现这个参数不知道该怎么传递了,这个现有的函数非常的复杂,用到这个参数的地方极其多,修改的话实在是太头大了。
      

  6.   

    接着问一下,如何得到这个文件的指针?因为现有的函数传递的参数是文件指针,比如 fopen("c:\\a.txt","wb") 所返回的指针这个现有的函数非常的复杂,用到这个指针的地方极其多,修改的话实在是太头大了。