myheap.h

来自「SQLBig5BugTool 宽字符操作问题」· C头文件 代码 · 共 47 行

H
47
字号
// MyHeap.h: interface for the CMyHeap class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MYHEAP_H__CFFE0003_9790_4E6B_B0C8_16CF55F89B19__INCLUDED_)
#define AFX_MYHEAP_H__CFFE0003_9790_4E6B_B0C8_16CF55F89B19__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


#include <string>

class CMyHeap
{
public:
	CMyHeap(LPCTSTR pszClassName = NULL);
	~CMyHeap();

public:
	void*	Alloc		(size_t size);
	void	Free		(void* ptr);
	BOOL	IsValidPt	(void* p);
	LONG	GetAllocCount	(void) const { return m_uNumAllocsInHeap; }

protected:
	HANDLE			m_hHeap;
	LONG			m_uNumAllocsInHeap;
	LONG			m_lMaxAllocsInHeap;
	std::string		m_strName;
};

#define	MYHEAP_DECLARATION(VAR)										\
public:																\
	void   operator delete	(void* p)	{ VAR.Free(p); }			\
	void*  operator new	(size_t size)	{ return VAR.Alloc(size); }	\
	void   operator delete[] (void* p)	{ VAR.Free(p); }			\
	void*  operator new[] (size_t size)	{ return VAR.Alloc(size); }	\
	static BOOL	IsValidPt(void* p)	{ return VAR.IsValidPt(p); }	\
	static CMyHeap	VAR;


#define	MYHEAP_IMPLEMENTATION(T,VAR)		CMyHeap	T::VAR(#T);								

#endif // !defined(AFX_MYHEAP_H__CFFE0003_9790_4E6B_B0C8_16CF55F89B19__INCLUDED_)

⌨️ 快捷键说明

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