读书人

如何修改文件呢

发布时间: 2012-04-22 18:34:46 作者: rapoo

怎么修改文件呢?
我用vc写了以下代码,想修改文件内容,可是一运行就报错,说什么内存不能读,怎么解决?

C/C++ code
#include "stdafx.h"#include <Windows.h>char* filepath="d:\\Test.exe";int main(int argc, char* argv[]){    HANDLE hFile = CreateFileA(filepath, GENERIC_WRITE, 0,     NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);    DWORD dwFileSize = GetFileSize(hFile, NULL);    HANDLE hfile=::CreateFileMappingA( hFile,NULL,PAGE_READWRITE,0,0,NULL);    LPVOID pData=MapViewOfFile(hfile,FILE_MAP_WRITE,0,0,0);    char* data=(char*)pData;    for(int i=0;i<(int)dwFileSize;++i)    {        char* temp=data+i;        *temp=92;    }    UnmapViewOfFile(pData);    CloseHandle(hfile);    return 0;}


[解决办法]
探讨

引用:

你的CreateFileMapping可能失败了,导致pData为空,后面就一路失败了。
把GENERIC_WRITE改为GENERIC_WRITE|GENERIC_READ再试下

还是不行

读书人网 >C++

热点推荐