|
5鱼币
本帖最后由 贱人一个 于 2012-12-19 22:07 编辑
- #include "stdio.h"
- #include "windows.h"
- #define BUFFSIZE 1024 // 内存大小
- #define FILE_MAP_START 0x28804 // 文件映射的起始的位置
- void main()
- {
- HANDLE hf=CreateFile("test.dat",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
- //获取系统信息
- SYSTEM_INFO SysInfo; //系统信息
- GetSystemInfo(&SysInfo);
- DWORD dwSysGran;
- dwSysGran = SysInfo.dwAllocationGranularity;
- //创建文件内存映射区域的句柄
- HANDLE hM=CreateFileMapping(hf,NULL,PAGE_READWRITE,0,32,NULL);
- //计算mapping的起始位置
- DWORD dwFileMapStart = (FILE_MAP_START / dwSysGran) * dwSysGran;
- //映射
- LPVOID lp =MapViewOfFile(hM,FILE_MAP_ALL_ACCESS,0,dwFileMapStart,32);
- //打印
- int a[32];
- CopyMemory(a,lp,32);
- for(int i=0;i<32;i++)
- {
- printf("0x%.2x",a[i]);
- }
- }
复制代码
内存不能为
那里错了
|
|