输出错误代码对应的文本
来源:互联网 发布:颈椎按摩器 知乎 编辑:程序博客网 时间:2024/05/16 15:48
有时候函数返回的错误代码,或者某个库自己定义的错误代码,只知道他们值(一般是一个DWORD类型的数据),下面介绍下通过函数来获得这些错误代码对应的文本描述。
分两种情况,通用的系统定义的错误代码和某个库自己定义的错误代码。
可以通过函数FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_IGNORE_INSERTS,hModule,pdhstatu,MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),(LPTSTR)&p_error_message,0,NULL);来获得某个错误代码的对应文本信息。
FormatMessage函数的第一个参数是一些标记(例如FORMAT_MESSAGE_FROM_SYSTEM代表要从系统的错误信息文件中查找错误代码对应的文本信息;FORMAT_MESSAGE_FROM_HMODULE表示要从一个模块中获得错误代码对应的文本信息,当FormatMessage函数的第一个参数包含FORMAT_MESSAGE_FROM_HMODULE时,FormatMessage的第二个参数就用来指定包含错误代码信息的模块的句柄;FORMAT_MESSAGE_ALLOCATE_BUFFER表示要FormatMessage()函数本身来分配存储错误代码所对应的文本信息的存储空间,这时FormatMessage()函数的第五个参数需要指定用来存放函数自身分配的存储空间的地址的地址),当FORMAT_MESSAGE_FROM_SYSTEM和FORMAT_MESSAGE_FROM_HMODULE同时存在时,程序会先从module中搜索信息,假如没搜索到,再从系统中搜索信息。
FormatMessage()函数的第二个参数用来指定包含错误代码相关信息的模块的句柄(FORMAT_MESSAGE_FROM_HMODULE标记存在的情况下),这个句柄可以用HMODULEhModule=LoadLibraryEx("Pdh.dll",NULL,LOAD_LIBRARY_AS_DATAFILE);语句来获得,加载的动态库最后需要用FreeLibrary(hModule);语句来释放。
FormatMessage()函数的第三个参数指示错误代码,这个错误代码可以是某函数的返回值,也可以用GetLastError()函数来获得(也是函数的返回值,呵呵)。
FormatMessage()函数的第四个参数指定表示错误信息文本要用的语言。
FormatMessage()函数的第五个参数是存放错误代码对应的文本的存储空间的地址的地址。
下面c++代码可供参考:
void display_error(DWORDpdhstatu)
{
}
- 输出错误代码对应的文本
- WINDOWS的错误代码对应的故障
- MQ错误代码对应的错误说明
- 输出所有select元素下的所有option元素中对应的文本内容
- Socket错误代码对应表
- oracle的错误代码如何查看对应的错误信息
- 文本的输入&输出
- GetLastError返回错误代码对应的意思0-3099
- Linux下connect()函数的错误代码对应含义
- 输出时间对应的人数
- 汇编程序:输出对应的英文单词
- ADO错误码,ASP错误代码,jscript错误代码,vbscript错误代码对应
- Socket错误代码对应表(转)
- 可输出文本的ASSERT
- 文本输出的变量插入
- 用*号输出数组对应的个数
- 输入星期几,输出对应的英文
- 输入星期几输出对应的英文
- 给你一支笔,你如何测试
- 给你一个杯子,你如何测试
- cocos2d-x初学笔记02:一些概念
- 三角形测试用例
- 用Pdh库获得CPU利用率
- 输出错误代码对应的文本
- 位域(unsigned char a:4的解释)
- 分治方法实现求一个数组的逆序数
- 电梯调度算法
- 图着色问题
- 求质数的筛子
- 一种NIM游戏的解析
- 在数组中寻找出现次数超过半数的数
- 有关阶乘的算法