类声明(CMemBuffer.h):
#pragma once
class CMemBuffer
{
public:
CMemBuffer(DWORD dwSize = 0);
~CMemBuffer(void);
/*申请内存*/
BOOL Realloc(DWORD dwSize, BOOL bSetLength = FALSE);
/*写入数据*/
BOOL Append(LPCVOID pBuffer, DWORD dwSize, DWORD dwPos = 0);
/*删除数据*/
void Remove(DWORD dwSize);
/*获取数据指针*/
LPBYTE GetData(DWORD dwPos = 0);
/*获取数据大小*/
DWORD Size();
/*设置缓存区大小*/
void SetSize(DWORD dwSize);
/*删除缓存区,数据大小置0*/
void Emtpy();
/*清空数据,缓存大小不变*/
void Clear();
private:
CMemBuffer(const CMemBuffer&);
CMemBuffer& operator = (const CMemBuffer&);
BOOL Resize(DWORD dwSize);
/*内存数据指针*/
LPBYTE m_pBuffer;
/*内存大小*/
DWORD m_dwCapacity;
/*数据大小*/
DWORD m_dwSize;
};
类定义(CMemBuffer.cpp):
#include "pch.h"
#include "MemBuffer.h"
#define BUFFER_SIZE 2048
CMemBuffer::CMemBuffer(DWORD dwSize)
{
m_pBuffer = NULL;
m_dwCapacity = 0