首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

一个共享内存打包类的源码

2013-11-08 
一个共享内存封装类的源码(转载请注明原文地址:http://blog.csdn.net/while0/article/details/11358887)本

一个共享内存封装类的源码

(转载请注明原文地址:http://blog.csdn.net/while0/article/details/11358887)

本篇文章分享我以前实现的一个共享内存的封装类,它通过Windows的共享内存 API,以面向对象的形式提供一套接口,极大地方便使用。

该类提供以下接口:

1) 创建共享内存。

2)销毁共享内存。

3)对共享内存的数据读写。

4)提供互斥锁接口。


以下把源码贴出来,与大家分享。

文件SharedMemory.cpp:

#ifndef __SHAREDMEMORY_H__#define__SHAREDMEMORY_H__class CSharedMemory{protected:    GString m_strName;    int     m_nSize;    HANDLE  m_hShmFile;    HANDLE  m_hMutex;    PVOID   m_pData;    public:    CSharedMemory();    virtual ~CSharedMemory();        BOOL  Create(LPCSTR lpName, int nSize, BOOL *pbExist = NULL);    BOOL  Destroy();    static BOOL IsExist(LPCSTR lpName);    static PBYTE GetData(LPCSTR lpName, int nSize);        BOOL  SetLong(DWORD dwData, int nOffset = 0);    DWORD GetLong(int nOffset = 0);        BOOL  SetString(GString strData, int nOffset = 0, int nSize = -1);    BOOL  GetString(GString &strData, int nOffset = 0);        inline int GetSize() {return m_nSize;};        BOOL Lock( );    BOOL Unlock( );    BOOL  SetData(PBYTE pData, int nOffset = 0, int nSize = -1);    PBYTE GetData(int nOffset = 0);};#endif



热点排行