-
-
[求助]DLL中用MapFile数据共享要怎么确定要共享数据的位置?
-
发表于: 2008-8-14 23:27 3466
-
在书上看到一个例子,作者是用EXE来进行数据共享的
作者又说如果在DLL中要共享数据很方便,只要在link时候加上/section:.bss,S 就可以简单共享了,我的问题是,我们要怎么确定要共享的位置的起始位置和结束位置在哪里呢? 也就是上面
invoke CreateFileMapping,-1,NULL,PAGE_READWRITE,0,4096,addr szMMFName
这个语句中的0,4096
我做了一个关于DLL用filemap来共享数据的程序,结果只能是宿主程序自身使用,不能在2个进程间共享数据,我把程序附上来,大家可以帮我看看吗?多谢~
_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个进程间共享数据,我把程序附上来,大家可以帮我看看吗?多谢~
赞赏
他的文章
赞赏
雪币:
留言: