我想向内存映射文件写数据。我执行了下面语句:
DWORD dw;
char stmp[100];
LPCVOID lpv;
BOOL rbl;
HANDLE hMFile;hMFile=NULL;
hMFile=CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,10240,"m_f");
LPSTR pszM=(LPSTR)MapViewOfFile(hMFile,FILE_MAP_WRITE|FILE_MAP_READ,0,0,0);
dw=0;
sprintf(stmp,"123456");
lpv=(LPCVOID)(&stmp[0]);
rbl=FALSE;
rbl=WriteFile(hMFile,lpv,5,&dw,NULL);执行完后,WriteFile(hMFile,lpv,5,&dw,NULL)的返回值为0即FALSE。
这是为什么?是什么地方写错了?
DWORD dw;
char stmp[100];
LPCVOID lpv;
BOOL rbl;
HANDLE hMFile;hMFile=NULL;
hMFile=CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,10240,"m_f");
LPSTR pszM=(LPSTR)MapViewOfFile(hMFile,FILE_MAP_WRITE|FILE_MAP_READ,0,0,0);
dw=0;
sprintf(stmp,"123456");
lpv=(LPCVOID)(&stmp[0]);
rbl=FALSE;
rbl=WriteFile(hMFile,lpv,5,&dw,NULL);执行完后,WriteFile(hMFile,lpv,5,&dw,NULL)的返回值为0即FALSE。
这是为什么?是什么地方写错了?
http://www.codeproject.com/useritems/sharedmem_jni.asp
http://www.codeproject.com/threads/sharedmemipc.asp
File Mapping Functions
The following functions are used with file mapping.
CreateFileMapping
FlushViewOfFile
MapViewOfFile
MapViewOfFileEx
MapViewOfFileVlm
OpenFileMapping
UnmapViewOfFile
UnmapViewOfFileVlm