Как конвертировать код ошибки в её описание

Я пытаюсь открыть не существующий файл, потом с помощью функции GetLastError я узнаю код ошибки, после с помощью функции пытаю конвертировать этот код в описание используя FormatMessage. Я не до конца понимаю где именно у меня хранится описание моей ошибки и что именно выводить. Я пытался вывести lpMsgBuf - как я понимаю это указатель на буфер для форматирования уведомления об ошибке. Пытался вывести через printf и MessageBox но мне выбивало ошибки. Вот мой код(оставил в коде только что что мне кажется правильным):

#define _CRT_SECURE_NO_WARNINGS
#include <windows.h>
#include <stdio.h>


int main()
{
    FILE* file = fopen("file.txt", "r");
    DWORD ErrCode = GetLastError();
    printf("Number of Error:%d",ErrCode);
    LPVOID lpMsgBuf;
    FormatMessage(
        FORMAT_MESSAGE_ALLOCATE_BUFFER || FORMAT_MESSAGE_FROM_SYSTEM, NULL,
        ErrCode,
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
        // Default language
        (LPTSTR)&lpMsgBuf, 0, NULL);
    

    return 0;
}

Не судите строго , я только учусь. Что мне нужно вывести? Где храниться информация об сомой ошибке ?


Ответы (1 шт):

Автор решения: Harry

Ну, проще всего, мне кажется, так:

char buf[1024];
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,GetLastError(),NULL,
              buf,1024,NULL);
printf("Error: %s\n",buf);
→ Ссылка