请教一个内存映射的问题

开拓者-lada 2010-05-14 12:38:09
FileMapHandle := CreateFileMapping($FFFFFFFF,//内存映射
nil, 第二个参数 ???????????????????
PAGE_READWRITE,//读写操作
0,//高32位 ,一般为0,除非要映射的文件大于4G
sizeof(TShareMem),
FILEMAPPINGNAME
);

请教大家一下,这第二参数应该怎么设置,我的程序是一个服务,,我想让另外一个程序访问内存,必须设置安全属性,也就是第二个参数,不能为nil


下面是一段在C里面的使用的代码,由于基础差,看不懂,
SECURITY_ATTRIBUTES sa;
SECURITY_DESCRIPTOR sd;

InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = &sd,
sa.bInheritHandle = FALSE;

m_hFileHandle = CreateFileMappingW( INVALID_HANDLE_VALUE, // handle to file
&sa, // security
PAGE_READWRITE, // protection
0, // high-order DWORD of size
m_nFileSize, // low-order DWORD of size
,L"Global\\myName" );//这里的Global很重要 用来区分命名空间 // object name
);

if( !m_hFileHandle ) {
OutputDebugStringA("ss创建失败");
return false;
}
...全文
52 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
merrymin 2010-05-14
  • 打赏
  • 举报
回复

var
Psd: PSecurityDescriptor;
Psa: PSecurityAttributes;

InitializeSecurityDescriptor(Psd, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(Psd, True, nil, False);
Psa^.nLength := SizeOf(TSecurityAttributes);
Psa^.lpSecurityDescriptor := Psd;
Psa^.bInheritHandle := False;
FileMapHandle := CreateFileMapping($FFFFFFFF,//内存映射
Psa, //你需要的第二个参数
PAGE_READWRITE, //读写操作
0, //高32位 ,一般为0,除非要映射的文件大于4G
sizeof(TShareMem),
FILEMAPPINGNAME
);


merrymin 2010-05-14
  • 打赏
  • 举报
回复
内存映射了解得不是很清楚,但是根据C语言的Demo和Windows.pas中提高的信息,我帮你改写一下:

var
Psd: PSecurityDescriptor;
Psa: PSecurityAttributes;

InitializeSecurityDescriptor(Psd, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(Psd, True, nil, False);
Psa^.nLength := SizeOf(TSecurityAttributes);
Psa^.lpSecurityDescriptor := Psd;
Psa^.bInheritHandle := False;
FileMapHandle := CreateFileMapping($FFFFFFFF,//内存映射
Psa, //你需要的第二个参数
PAGE_READWRITE, //读写操作
0, //高32位 ,一般为0,除非要映射的文件大于4G
sizeof(TShareMem),
FILEMAPPINGNAME
);

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧