未
未来107
Unregistered / Unconfirmed
GUEST, unregistred user!
打开一个内存镜像文件如pmem ,他保存的内容应该是char *类型的(pchar).现在如何读取
他并让他以16进制显示如下形式:
01 02 03 04 05.......
00001 AB 0D DD
00002 45 54 55
读取映像文件代码如下:
procedure TForm1.Mymessage(var Message:TMessage);
var
m:string;
hfilemap:hwnd;
pmemointer;
begin
hFileMap:=CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,10000,'Share');
if hFileMap=0 then
begin
CloseHandle(hFileMap);
ShowMessage('打开内存映射文件错误');
end;
//读取
pmem:=MapViewOfFile(hFileMap,File_Map_All_Access,0,0,0);// 访问整个映象文件
if pMem=nil then
begin
CloseHandle(hFileMap);
UnmapViewOfFile(pMem);
ShowMessage('读取存映射文件错误');
end;
m := PChar(pmem);//从共享内存读出内容
listbox2.Items.add(m);//接受数据并显示。
UnmapViewOfFile(pMem);
CloseHandle(hFileMap);
好友一个问题是好像读取得内容好像少了一部分?
他并让他以16进制显示如下形式:
01 02 03 04 05.......
00001 AB 0D DD
00002 45 54 55
读取映像文件代码如下:
procedure TForm1.Mymessage(var Message:TMessage);
var
m:string;
hfilemap:hwnd;
pmemointer;
begin
hFileMap:=CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,10000,'Share');
if hFileMap=0 then
begin
CloseHandle(hFileMap);
ShowMessage('打开内存映射文件错误');
end;
//读取
pmem:=MapViewOfFile(hFileMap,File_Map_All_Access,0,0,0);// 访问整个映象文件
if pMem=nil then
begin
CloseHandle(hFileMap);
UnmapViewOfFile(pMem);
ShowMessage('读取存映射文件错误');
end;
m := PChar(pmem);//从共享内存读出内容
listbox2.Items.add(m);//接受数据并显示。
UnmapViewOfFile(pMem);
CloseHandle(hFileMap);
好友一个问题是好像读取得内容好像少了一部分?