📄 dumperr.cpp
字号:
#include "stdafx.h"
#include "dumperr.h"
#include <stdio.h>
//-------------------------------------------------------------------------------------------
// 函数名:dump_com_error
// 函数功能:根据COM异常类的信息,填充错误字符串
// 参数说明:
// _com_error &e : COM异常类
// char* sError : 错误字符串
// int nSize : 字符串的长度
//-------------------------------------------------------------------------------------------
void dump_com_error( _com_error &e, char* sError, int nSize, char* szPrompt /*=NULL*/ )
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDes(e.Description());
memset(sError,0,nSize);
if ( !szPrompt ) {
sprintf(sError,"COM ERROR!\r\n Code=0x%08lx\r\n"
"Code meaning = %s\r\n"
"Source=%s\r\n"
"Description=%s",
e.Error(),e.ErrorMessage(),
(LPCSTR) bstrSource,(LPCSTR)bstrDes);
}else{
sprintf(sError,"%s\r\n Code=0x%08lx\r\n"
"Code meaning = %s\r\n"
"Source=%s\r\n"
"Description=%s",
szPrompt,
e.Error(),e.ErrorMessage(),
(LPCSTR) bstrSource,(LPCSTR)bstrDes);
}
}
//-------------------------------------------------------------------------------------------
// 函数名:dump_system_error
// 函数功能:根据当前的系统错误号,获得系统错误字符串
// 参数说明:
// char* sError : 返回系统错误字符串
//-------------------------------------------------------------------------------------------
void dump_system_error(char* sError,int nSize,char* sDes)
{
DWORD dwErr;
char *sErr;
memset(sError,0,nSize);
sErr=(char*)malloc(nSize);
memset(sErr,0,nSize);
dwErr=::GetLastError();
::FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,dwErr,
MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT),(LPTSTR)sErr,nSize,NULL);
if(sDes){
sprintf(sError,"SYSTEM ERROR!\xd\xaCode = 0x%8lx\xd\xa\
Code meaning = %s\xd\xa\
Description = %s\xd\xa",
dwErr,sErr,sDes);
}else{
sprintf(sError,"SYSTEM ERROR!\xd\xaCode = 0x%8lx\xd\xa\
Code meaning = %s\xd\xa",
dwErr,sErr);
}
free(sErr);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -