首页
社区
课程
招聘
[求助]文件映射的一个问题
发表于: 2011-11-1 13:14 4048

[求助]文件映射的一个问题

2011-11-1 13:14
4048
我客户端和服务端通信采用文件映射,客户端和服务端都是用下面的代码。不过出现了一个问题:我的服务端
是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;

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 412
活跃值: (30)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
应该是权限问题,GetLastError看一下
2011-11-1 13:58
0
雪    币: 222
活跃值: (161)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
应该是这样吧,我还是换个方式算了,感谢解答
2011-11-1 21:25
0
游客
登录 | 注册 方可回帖
返回
//