如何用标准C语言创建出共享内存?

来源:百度知道 编辑:UC知道 时间:2024/06/27 10:13:52
第一次接触这个,手边又没相关资料.有没有热心的高手给详细的源码? 感激不尽!

CPEHelper::CPEHelper(PCSTR lpFileName)
{
hFile = INVALID_HANDLE_VALUE;
hFile = CreateFileA( lpFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
}

CPEHelper::CPEHelper(PCWSTR lpFileName)
{
hFile = INVALID_HANDLE_VALUE;
hFile = CreateFileW( lpFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
}

bool CPEHelper::operator !()
{
if (hFile == INVALID_HANDLE_VALUE)
return true;
return false;
}

CPEHelper::~CPEHelper(void)
{
if(hFile != INVALID_HANDLE_VALUE)
CloseHandle(hFile);
}

bool CPEHelper::MappingFile()
{
hMapFile = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0,NULL);

if (hMapFile == NULL)
return false;

lpMapAddress = MapViewOfFile(hMapFile,FILE_MAP_READ,0,0,0);

if (lpMapAddress == NULL)
return false;