首页
社区
课程
招聘
[求助]DLL中用MapFile数据共享要怎么确定要共享数据的位置?
发表于: 2008-8-14 23:27 3466

[求助]DLL中用MapFile数据共享要怎么确定要共享数据的位置?

2008-8-14 23:27
3466
在书上看到一个例子,作者是用EXE来进行数据共享的
_CreateMMF	proc

		invoke	OpenFileMapping,FILE_MAP_READ or FILE_MAP_WRITE,0,addr szMMFName
		.if	! eax
			invoke	CreateFileMapping,-1,NULL,PAGE_READWRITE,0,4096,addr szMMFName
			.if	! eax
				jmp	@F
			.endif
		.endif
		mov	hFileMap,eax
		invoke	MapViewOfFile,eax,FILE_MAP_READ or FILE_MAP_WRITE,0,0,0
		.if	eax
			mov	lpMemory,eax
			mov	dword ptr [eax],0
			ret
		.endif
		invoke	CloseHandle,hFileMap
@@:
		invoke	MessageBox,hWinMain,addr szErr,NULL,MB_OK
		invoke	EndDialog,hWinMain,-1
		ret

_CreateMMF	endp


作者又说如果在DLL中要共享数据很方便,只要在link时候加上/section:.bss,S 就可以简单共享了,我的问题是,我们要怎么确定要共享的位置的起始位置和结束位置在哪里呢? 也就是上面
invoke        CreateFileMapping,-1,NULL,PAGE_READWRITE,0,4096,addr szMMFName
这个语句中的0,4096

我做了一个关于DLL用filemap来共享数据的程序,结果只能是宿主程序自身使用,不能在2个进程间共享数据,我把程序附上来,大家可以帮我看看吗?多谢~

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回