|
我是把配置做成xml,然后映射这个xml文件。
你也可以按固定格式写一个ini文件。
操作方式是一样的。
下面是部分代码
[code]
LPVOID lpRet = NULL;
if(lpdwFileLen)
*lpdwFileLen = 0;
::SetLastError(0);
__try
{
t_hFile = ::CreateFileForMapping(lpszFile2Map,GENERIC_WRITE|GENERIC_READ,
FILE_SHARE_WRITE | FILE_SHARE_READ, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(t_hFile == INVALID_HANDLE_VALUE)
{
int err ;
t_hFileMap = ::CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, BUFFER_LENGTH, L"mty95190");
err = ::GetLastError();
if(!t_hFileMap)
__leave;
if( err == ERROR_ALREADY_EXISTS)
{
lpRet = ::MapViewOfFile(t_hFileMap,FILE_MAP_ALL_ACCESS,0,0,0);
}
else
__leave;
}
else
{
int err;
int size = ::GetFileSize(t_hFile, NULL);
t_hFileMap = ::CreateFileMapping(t_hFile, NULL, PAGE_READWRITE, 0, BUFFER_LENGTH, L"mty95190");
err = ::GetLastError();
if(!t_hFileMap)
__leave;
if( err == ERROR_ALREADY_EXISTS)
{
lpRet = ::MapViewOfFile(t_hFileMap,FILE_MAP_ALL_ACCESS,0,0,0);
}
else
{
lpRet = ::MapViewOfFile(t_hFileMap,FILE_MAP_ALL_ACCESS,0,0,0);
if(size < BUFFER_LENGTH)
((BYTE*)lpRet)[size] = '\0';
}
}
} |
|