请求解决代码如下:
hFile:=createfile(pchar('c:\winnt\system\tt.bin'),
GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ,
nil,
OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN,
0);
if hFile = INVALID_HANDLE_VALUE then Exit;
FileSize:=GetFileSize(hFile, @HighSize);
hMapping:=CreateFileMapping(hFile,
nil,
PAGE_READWRITE,
0,
0,
pchar('tt.bin'));
if (hMapping = 0) then
begin
CloseHandle(hFile);
Exit;
end;
{close the file handle, as we no longer need it}
CloseHandle(hFile);
Data := pbyte(MapViewOfFile(hMapping, FILE_MAP_WRITE, 0, 0, 0));
hFile:=createfile(pchar('c:\winnt\system\tt.bin'),
GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ,
nil,
OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN,
0);
if hFile = INVALID_HANDLE_VALUE then Exit;
FileSize:=GetFileSize(hFile, @HighSize);
hMapping:=CreateFileMapping(hFile,
nil,
PAGE_READWRITE,
0,
0,
pchar('tt.bin'));
if (hMapping = 0) then
begin
CloseHandle(hFile);
Exit;
end;
{close the file handle, as we no longer need it}
CloseHandle(hFile);
Data := pbyte(MapViewOfFile(hMapping, FILE_MAP_WRITE, 0, 0, 0));
解决方案 »
- 对于版内的发贴回贴的几点建议
- datagrid或datagrideh能否实现分也显示数据呢
- 关于ActionMainMenuBar的处理
- 怎么算出的结果是两倍啊
- 求助!!!
- 请教大虾imageen中,如何对ImageEnView中,特定层的图片进行缩放??
- 同志们,帮我看看一个简单的三层更新的问题!
- ~~~~请问如何写像金山毒霸那种图形介面的程序呢?~~~~~
- 哪里有下载关于SQL的一些函数,如把字符转为日期,把数字转为字符等?
- 怎样将DLL程序作成EXE,我试了,用COMPILE和BUILD都不行(运行时HOST APPLICATION要用)
- 怎样利用软件在已知的网站自动注册,登陆并发布供求信息,并在其中搜索关键字,郁闷!
- 100小问题,如何在自己写的控件中重载继承父控件的事件。在线等待~~
反正内存映射是这样了。var
hFile , hMapping : Hwnd;
pMapping : Pointer;
begin
hFile := CreateFile(PChar(Edit1.Text),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if hFile <> INVALID_HANDLE_VALUE then begin
hMapping := CreateFileMapping(hFile,nil,PAGE_READONLY,0,0,nil);
if hMapping <> NULL then begin
pMapping := MapViewOfFile(hMapping,FILE_MAP_READ,0,0,0);
if IMAGE_DOS_HEADER(pMapping^).e_magic = IMAGE_DOS_SIGNATURE then begin
Inc(Longword(pMapping),IMAGE_DOS_HEADER(pMapping^)._lfanew);
if IMAGE_NT_HEADERS(pMapping^).Signature = IMAGE_NT_SIGNATURE then
Application.MessageBox('所选文件为 PE 格式!','提示信息',MB_ICONINFORMATION+MB_OK)
else
ShowMessage(format('%x',[IMAGE_NT_HEADERS(pMapping^).Signature])+' '+format('%x',[IMAGE_NT_SIGNATURE]))
end;
end;
end;
CloseHandle(hFile);