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

📄 exception.h

📁 DM9000芯片所有的资料,包括如何与S3C2440连接的原理图,PCB,还有最新驱动,怎样在驱动里修改参数的PDF文档
💻 H
字号:
// Exception.h: interface for the CException class.
//
//////////////////////////////////////////////////////////////////////
//========================================================================
// Class Name	: CException
// Purpose		: 
// Autor		: Richard Chuang
// Email		: 
// Description	: 
// Reference    : 
// Copyright    : Copyright (c) 2000-2007 Davicom Inc.  All rights reserved.
// -----------------------------------------------------------------------
// Version		: 1.0.0.0
// Update       : 2007-10-23
// Modified		: Richard Chung
// Description	: 
// -----------------------------------------------------------------------
// How to use: 
//  
#if !defined(_DAVICOM_EXCEPTION_H_)
#define _DAVICOM_EXCEPTION_H_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "stdafx.h"

#define	MAX_EXCEPTIONS	256
#define	ERR_STRING(p)	(PUCHAR)(p)

class CException  
{
public:
	CException();
	virtual ~CException();
	CException(DWORD dwErr);
	CException(PUCHAR ptrErr, DWORD dwErr=NDIS_STATUS_FAILURE);

	void	Constructor(PUCHAR ptrErr, DWORD dwError);
	void	PrintErrorMessage(void);
	DWORD	GetErrorCode(void);
protected:
	DWORD			m_dwErrorCode;
	NDIS_STRING		m_strNdisErrorMessage;
};

typedef	struct	_EXCEPTION_DATA_
{
	int				nIndex;
	jmp_buf			szJumps[MAX_EXCEPTIONS];
	CException		*szpExceptions[MAX_EXCEPTIONS];
}	EXCEPTION_DATA,	*PEXCEPTION_DATA;

extern PEXCEPTION_DATA		g_pExpData;

#define	INIT_EXCEPTION()	(g_pExpData = (PEXCEPTION_DATA)malloc(sizeof(EXCEPTION_DATA)) \
							, memset((void*)g_pExpData,0,sizeof(EXCEPTION_DATA)),g_pExpData->nIndex = -1)

#define	TERM_EXCEPTION()	free(g_pExpData)

#define	TRY					if(setjmp(g_pExpData->szJumps[++g_pExpData->nIndex]) == 0)

#define	FI					--(g_pExpData->nIndex)

#define	CATCH(exp) 			else if(((exp) = g_pExpData->szpExceptions[g_pExpData->nIndex--]))

#define	THROW(x) 			( g_pExpData->szpExceptions[g_pExpData->nIndex] = new CException x, \
							longjmp(g_pExpData->szJumps[g_pExpData->nIndex],-1))

#define	CLEAN(x)			delete x

#endif // !defined(_DAVICOM_EXCEPTION_H_)

⌨️ 快捷键说明

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