在内存映射之前,首先我们需要用CreatFile()来打开文件,如果我们需要对文兆乎件进行修改的话,第二个关键函数必须设置在内存映射之前,首先我们需要用CreatFile()来打开文件,如果我们需要对文件进行修改的话,第二个关键函数必须设置
然后就是经典的CreateFileMapping()来映射文件到内存了,这个函数共有6个参数,楼主在之前修改文件的时候是读取文件,然后对文件字符串加密,但是加密后的体积比原文件大,这样的话我在写入的时候总是出现问题,后来仔细看了MSDN才发现,猫腻就在这个函数,它的第五个跟第六个函数告诉我们我们要映射文件的高32位的最大值,与低32位的最小值,如果两个都为零的话,它默认映射的大小就是原文件的大小,所以你在试图修改它的映射文件并把它映射回去的时候,会出现比原文件大的族凳悉情况粗嫌,这样就出现问题了,所有,我们在映射文件到到内存之前,最好求出我们修改后的文件大小。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)