GetLastError()
retorna um DWORD
. Existe uma função da API do Windows que traduz isso DWORD
em uma string, o nome do #define
? Por exemplo, para 123
isso retornaria "ERROR_INVALID_NAME"
. Aqui está uma lista de códigos de erro do sistema .
FormatMessage
não parece funcionar, mas a ferramenta de pesquisa de erros da Microsoft de alguma forma imprime o nome do arquivo #define
.
Não sem criar você mesmo um banco de dados desses mapeamentos. Basicamente, a
std::map<DWORD, std::wstring>
,FormatMessage
obtém apenas o texto da mensagem, não o#define
(lembre-se,#define
os tokens desaparecem muito cedo no processamento de origem).A ferramenta de pesquisa de erros da Microsoft contém os nomes dos
#define
e os textos das mensagens no .exe. Você pode verificar isso com um visualizador binário.