Search code examples
winapierror-code

Can you translate a GetLastError() error code into the name of the #define?


GetLastError() returns a DWORD. Is there a Windows API function that translates this DWORD into a string, the name of the #define? E.g. for 123 it would return "ERROR_INVALID_NAME". Here is a list of system error codes.

FormatMessage doesn't seem to do the job, but the Microsoft Error Lookup Tool somehow prints the name of the #define.


Solution

  • Not without creating a database of such mappings yourself. Basically a std::map<DWORD, std::wstring>, FormatMessage only gets you the message text, not the #define (remember, #define tokens disappear very early in the source processing).

    The Microsoft Error Lookup Tool contains the names of the #define's and the message texts in the .exe. You can check it with a binary viewer.