如何将GetLastError()返回的DWORD错误码转换为#define宏名称?
错误码转#define宏名称的实现方案
没有原生Windows API函数可以直接将GetLastError()返回的DWORD错误码转换为对应的#define宏名称字符串(比如把错误码123转为"ERROR_INVALID_NAME")。
FormatMessage仅能获取错误的描述文本,无法输出宏名称。- 微软错误查找工具之所以能输出宏名称,是因为它内置了从Windows SDK头文件(如
winerror.h)中提取的错误码与宏名称的映射关系。
如果需要在自己的程序中实现该功能,可行的方式是:
- 手动或通过脚本从
winerror.h等头文件中提取错误码与对应宏名称的映射,构建自定义的哈希表或查找结构。 - 运行时通过查询该自定义结构,实现错误码到宏名称的转换。
内容的提问来源于stack exchange,提问作者Dr. Gut
相关产品推荐
相关产品推荐

