共享内存封装类2010-09-18awzzz本文介绍一个共享内存封装类,使共享内存的使用更简单化,特别适合更懒的程序员使用:-)一、实现目标:简单化使用共享内存二、使用说明:1. 创建共享内存CSFMServer对象, 需要为CSFMServer对象指定专用的名字,只要系统中存在一个这样的对象,就可以在其他程序中简单方便地使用该共享内存。CSFMServer(char *szFileName, char *szMapName, DWORD dwSize);
Create(char *szFileName, char *szMapName, DWORD dwSize);
参数1:NULL或指定的文件(将创建或打开并读写/麻烦)参数2:要创建的共享内存对象名参数3:要创建的共享内存对象大小例如m_SFMS.Create(NULL, "_ZZZ_OBJ_", 1);
2. 本地使用共享内存使用 LPVOID GetBuffer() 返回共享内存地址,例如char *p = (char*)m_SFMS.GetBuffer();
if (p)
strcpy(p, "1234567890");
3. 创建共享内存CSFMClient对象,也需要为CSFMClient对象指定专用的名字(上一步使用的那个),即可使用共享内存。CSFMClient(DWORD dwAccess, char *szMapName);
Open(DWORD dwAccess, char *szMapName);
参数1:共享内存对象访问方式(FILE_MAP_READ|FILE_MAP_WRITE)参数2:共享内存对象名例如:CSFMClient *pCSFMC = new CSFMClient(FILE_MAP_READ, "_OBJ_ZZZ_");
4. 本地使用共享内存使用 LPVOID GetBuffer() 返回共享内存地址,例如char *p = (char*)pCSFMC->GetBuffer();
if (p) strcpy(p, "1234567890");