WEB开发网
开发学院软件开发VC 共享内存封装类 阅读

共享内存封装类

 2006-07-19 11:35:35 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 本文介绍一个共享内存封装类,使共享内存的使用更简单化,共享内存封装类,特别适合更懒的程序员使用:-)一、实现目标:简单化使用共享内存二、使用说明:1. 创建共享内存CSFMServer对象, 需要为CSFMServer对象指定专用的名字,只要系统中存在一个这样的对象,也需要为CSFMC

本文示例源代码或素材下载

本文介绍一个共享内存封装类,使共享内存的使用更简单化,特别适合更懒的程序员使用:-)

一、实现目标:简单化使用共享内存

二、使用说明:

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");

三、该类的具体实现代码如下:

1 2 3  下一页

Tags:共享 内存 封装

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接