⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diagnosis.h

📁 用VC在BREW平台上开发的手机游戏Superball的源代码
💻 H
字号:
/*
 *  BREW Extension Library
 *  Copyright (c) 2003-2005 ANYSOFT.CN 
 *  All Rights Reserved.
 */

/*!
	@file 
	@brief [Diagnosis] 诊断模块
 
	本模块提供了诊断用的各种宏和辅助函数,供调试版本程序使用
*/ 

#include <AEEStdLib.h>

#ifndef __BEL_DIAGNOSIS_H__
#define __BEL_DIAGNOSIS_H__

/*!
	@defgroup	Diagnosis	Diagnosis Module/诊断模块
	@{
 */

#ifdef _DEBUG

#define _BEGIN_TRACE() do { DBGPRINTF("=====TRACE Start====="); } while(0)
#define _END_TRACE() do { DBGPRINTF("===== TRACE End ====="); } while(0)

/*!
		@brief 输出调试信息到模拟器的Output Window (使用DBGPRINTF)
 */
#define TRACE DBGPRINTF

/*!
		@brief TRACE-直接打印字符串
 */
#define TRACE0(str) \
	do \
	{ \
		_BEGIN_TRACE(); \
		TRACE("%s : %d", __FILE__, __LINE__); \
		TRACE("%s",str); \
		_END_TRACE(); \
	} while(0)

/*!
		@brief TRACE-打印一个变量(类似于printf("%d", v0))
 */
#define TRACE1(fmt, s0) \
	do \
	{ \
		_BEGIN_TRACE(); \
		TRACE("%s : %d", __FILE__, __LINE__); \
		TRACE(fmt, s0); \
		_END_TRACE(); \
	} while(0)

/*!
		@brief TRACE-打印两个变量(类似于printf("%d %d", v0, v1))
 */
#define TRACE2(fmt, s0, s1) \
	do \
	{ \
		_BEGIN_TRACE(); \
		TRACE("%s : %d", __FILE__, __LINE__); \
		TRACE(fmt, s0, s1); \
		_END_TRACE(); \
	} while(0)

/*!
		@brief TRACE-打印三个变量(类似于printf("%d %d %d", v0, v1, v2))
 */
#define TRACE3(fmt, s0, s1, s2) \
	do \
	{ \
		_BEGIN_TRACE(); \
		TRACE("%s : %d", __FILE__, __LINE__); \
		TRACE(fmt, s0, s1, s2); \
		_END_TRACE(); \
	} while(0)

/*!
		@brief TRACE-打印四个变量(类似于printf("%d %d %d %d", v0, v1, v2, v3))
 */
#define TRACE4(fmt, s0, s1, s2, s3) \
	do \
	{ \
		_BEGIN_TRACE(); \
		TRACE("%s : %d", __FILE__, __LINE__); \
		TRACE(fmt, s0, s1, s2, s3); \
		_END_TRACE(); \
	} while(0)

/*!
	@brief	断言,当检验条件为0时向Output Window输出断言失败信息
 */
#define ASSERT(s) \
	do \
	{ \
		if (0 == (int)(s)) \
		{ \
			TRACE0("Assertion failed : "#s); \
		} \
	} while(0)

#define VERIFY(s)	ASSERT(s)

#else
	 
#define TRACE
#define TRACE0
#define TRACE1
#define TRACE2
#define TRACE3
#define TRACE4
#define ASSERT(s)
#define VERIFY(s)	(s)

#endif

/*!
	@brief	定义变量int errCode用以保存异常类型,和CHECK_ERROR,CHECK_NULL一起使用
*/
#define DEFINE_ERRCODE() int errCode = SUCCESS

/*!
	@brief	如果条件不为SUCCESS(0)则跳转(goto)到label为ERROR_HANDLE处开始异常处理,错误代码保存在int errCode中(使用DEFINE_ERRCODE()宏定义)
 */
//		ASSERT(SUCCESS == errCode); 

#define CHECK_ERROR(s) \
	do \
	{ \
		errCode = (s); \
		if (SUCCESS != errCode) \
		{ \
			goto ERROR_HANDLER; \
		} \
	} while(0)

/*!
	@brief	如果条件为NULL(0)则跳转(goto)到label为ERROR_HANDLE处开始异常处理,错误代码保存在int errCode中(使用DEFINE_ERRCODE()宏定义)
 */
//		ASSERT(NULL != (s)); 

#define CHECK_NULL(s) \
	do \
	{ \
		if (NULL == (s)) \
		{ \
			errCode = EFAILED; \
			goto ERROR_HANDLER; \
		} \
	} while(0)	

/*!
	@brief	错误代码类型定义
 */
typedef word AppResult;

/*!
	@}
 */

#endif

⌨️ 快捷键说明

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