📄 baseobject.h
字号:
/**********************************************
所有对象的基类
**********************************************/
#ifndef CORE_BASEOBJECT_H
#define CORE_BASEOBJECT_H
#pragma once
#include "define.h"
#include "core.h"
#ifndef ASSERT
/// 自定义断言信息框
inline static char* AssertMessageBox(char* lpszFileName,int nLine,char* lpszMore)
{
static char szAssertBuffer[255];
sprintf(szAssertBuffer,"File: %s\nLine: %d\n\nSee Also: %s\n\nPress Yes to exit the application.",lpszFileName,nLine,lpszMore);
if(MessageBox(NULL,szAssertBuffer,"Assertion Failed!",MB_ICONERROR | MB_YESNO)==IDYES)
ExitProcess(0);
return szAssertBuffer;
}
/// 非调试状态下使用自定义的断言系统
#define ASSERT(expression) if(expression==NULL){AssertMessageBox(__FILE__,__LINE__,__FUNCTION__);}
#endif
#define DELETE_OBJECT(p) {if(p){delete p;p=NULL;}};
#define DELETE_OBJECTARRAY(p) {if(p){delete [] p;p=NULL;}};
#define RELEASE_OBJECT(p) {if(p){p->Release();p=NULL;}};
/// 基类,所有类均从此类派生
class BaseObject
{
public:
BaseObject(void){};
virtual ~BaseObject(void){};
protected:
/// 断言本身
virtual void AssertSelf(){ASSERT(this!=NULL);};
inline DWORD GetCurSecond(){return GetTickCount()/1000;}
char* WarningBox(LPCTSTR m_szError,...)
{
static char szBuff[1024];
va_list vl;
va_start(vl, m_szError);
vsprintf(szBuff, m_szError, vl);
MessageBox(NULL,szBuff,"WarningBox", MB_OK);
va_end(vl);
return szBuff;
}
};
#endif //CORE_BASEOBJECT_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -