一个共享内存封装类的源码
(转载请注明原文地址: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