buffer.cpp

来自「AVI这个软件是用VC编写的」· C++ 代码 · 共 68 行

CPP
68
字号
// Buffer.cpp: implementation of the CBuffer class.
//
//////////////////////////////////////////////////////////////////////

#include "../stdafx.h"
#include "Buffer.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#if 0
// Japanese
#define L_ERROR_ALLOC_AUDIO_BUFFER	"壒惡僶僢僼傽梡偺儊儌儕偑懌傝傑偣傫両"
#define L_TITLE_MESSAGEBOX			"捠抦"
#else
#define L_ERROR_ALLOC_AUDIO_BUFFER	"Out of memory for audio buffer!"
#define L_TITLE_MESSAGEBOX			"Note"
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CBuffer::CBuffer(DWORD size, bool AutoDelete)
{
	m_bAutoDelete = AutoDelete;
	try
	{
		ptr.b = new BYTE[size];
		if(ptr.b) ByteLen = size;
	}
	catch(...)
	{
		//ErrorMsg("Out of memory!");
		// You cannot use LoadString since it will throw an exception again.
		MessageBox(NULL,L_ERROR_ALLOC_AUDIO_BUFFER, L_TITLE_MESSAGEBOX,MB_OK);
	}
}

CBuffer::CBuffer(void* buffer, DWORD length)
{
	m_bAutoDelete = false;
	if(buffer)
	{
		ptr.v = buffer;
		ByteLen = length;
	}
	else
	{
		ptr.b = NULL;
		ByteLen = 0;
	}
}

CBuffer::~CBuffer()
{
	// remember to delete the memory
	if(m_bAutoDelete && ptr.b != NULL)  delete ptr.b;
}

void CBuffer::Erase()
{
	if(ptr.b) ZeroMemory(ptr.b,ByteLen);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?