Задача такая, нужно получить код ошибки и вывести на экран что это за ошибка. Вопрос. Есть ли какая-то встроенная апишка, которая код ошибки смогла бы перевести в строку типа INVALID_PARAMETER, ACESS_DENIED, и т.д. Либо прийдется забивать в программу коды ошибок и строки соотв. им самостоятельно?
Код (Text): void GetLastErrorMsg(int module=0){ char s[256]; FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,0,(!module?GetLastError():WSAGetLastError()), LANG_NEUTRAL,s,256,0); Msg(s); }
Или на Фасме: Код (Text): proc ShowErrorMessage hWnd,dwError local lpBuffer:DWORD lea eax,[lpBuffer] invoke FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM,\ 0,[dwError],LANG_NEUTRAL,eax,0,0 invoke MessageBox,[hWnd],[lpBuffer],NULL,MB_ICONERROR+MB_OK invoke LocalFree,[lpBuffer] ret endp proc ShowLastError hWnd invoke GetLastError or eax, eax je .endproc stdcall ShowErrorMessage,0,eax .endproc: ret endp
Код (Text): ErrorMessage Proc Local pErrorMessage :PDWORD call GetLastError lea edx,pErrorMessage xor ecx,ecx invoke FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM,ecx,eax,LANG_NEUTRAL,edx,ecx,ecx invoke MessageBox,hWndMain,pErrorMessage,0,MB_OK or MB_ICONEXCLAMATION invoke LocalFree,pErrorMessage ret ErrorMessage EndP