C++ 获取Windows错误代码的标识符

C++ 获取Windows错误代码的标识符,c++,winapi,C++,Winapi,在我正在开发的程序中,我需要收集有关运行时错误的信息。目前,我能够收集我需要的所有信息,包括通过FormatMessage发送的消息,但是错误的标识符(例如,error\u SUCCESS)。我知道在编译应用程序时,这些标识符实际上并不存在于二进制文件中 Windows API中是否有一个函数可以检索这些标识符,或者我是否需要将它们与我的应用程序一起存储?下面是一个很好的示例,说明如何获取错误代码以及如何将其转换为MSDN上更可读的消息 不需要复制,很简单: 错误\u成功本身只是一个常数。我还没

在我正在开发的程序中,我需要收集有关运行时错误的信息。目前,我能够收集我需要的所有信息,包括通过
FormatMessage
发送的消息,但是错误的标识符(例如,
error\u SUCCESS
)。我知道在编译应用程序时,这些标识符实际上并不存在于二进制文件中


Windows API中是否有一个函数可以检索这些标识符,或者我是否需要将它们与我的应用程序一起存储?

下面是一个很好的示例,说明如何获取错误代码以及如何将其转换为MSDN上更可读的消息

不需要复制,很简单:


错误\u成功
本身只是一个常数。我还没有找到从数字->常量标识符开始的方法


您可以使用扫描
WinError.h
并为应用程序创建某种类型的表。

据我所知,这样的API并不存在。您必须在应用程序中维护映射。是参考列表。它很大。祝你好运。@FrédéricHamidi我会看看我是否运气好,是否有人知道。我已经开始编写一个脚本来自动进行映射,但我不想使用它。当你有整数值和
FormatMessage
字符串时,为什么你需要这些呢?@chris:我正在制作一个应用程序,显示用户输入的代码信息,因此,我希望能够显示标识符以及我拥有的其他信息gathered@InsideOutCloud,啊,我个人不知道有什么方法可以做到这一点(反转宏吗?),所以地图可能是你最好的选择。我觉得不值得这么做。我已经收到消息了,我只需要标识符(例如
ERROR\u SUCCESS
)就可以了。标识符只是一个定义,即错误的编号。你想知道那个名字吗?i、 e.#定义错误(u SUCCESS 0,您想获得输出的错误(u SUCCESS)吗?差不多。我知道预处理器会删除
ERROR\u SUCCESS
并用值替换它,这让我相信我确实需要制作一个映射。是的,我不相信您可以以任何方式获得该标识符,因为预处理器将替换它们,因此在预处理器完成其工作后,该标识符不再可用。但是您可以从winerror.h中派生出自己的宏,使用一些宏并不是什么大事。这对你来说是一个可能的答案吗?我会给你一个机会,并报告已经有一个这样做的背景。