-
-
[求助]文件映射的一个问题
-
发表于:
2011-11-1 13:14
3942
-
我客户端和服务端通信采用文件映射,客户端和服务端都是用下面的代码。不过出现了一个问题:我的服务端
是window服务,客户端是普通的应用程序,当客户端先启动使用MapFile创建文件映射时,一切正常,可是当服务端
先启动时,客户端再启动MapFile就失败了,如果两者同为普通应用程序,也没什么问题,是否是我的代码有错误,
又或者是服务造成的
function MapFile():BOOL;stdcall;
begin
Result:=True;
hMappingFile := OpenFileMapping(FILE_MAP_WRITE,False,MappingFileName);
if hMappingFile=0 then
begin
hMappingFile := CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,SizeOf(TShareMem),MappingFileName);
end;
if hMappingFile=0 then
begin
Result:=False;
Exit;
end;
pShMem := MapViewOfFile(hMappingFile,FILE_MAP_WRITE or FILE_MAP_READ,0,0,0);
if pShMem = nil then
begin
Result:=False;
CloseHandle(hMappingFile);
Exit;
end;
end;
procedure UnMapFile();
begin
UnMapViewOfFile(pShMem);
CloseHandle(hMappingFile);
end;
[课程]Linux pwn 探索篇!