GetLastError() - распознавание ошибки

Тема в разделе "WASM.BEGINNERS", создана пользователем Colibri, 10 июн 2008.

  1. Colibri

    Colibri New Member

    Публикаций:
    0
    Регистрация:
    8 май 2008
    Сообщения:
    117
    Задача такая, нужно получить код ошибки и вывести на экран что это за ошибка.

    Вопрос.

    Есть ли какая-то встроенная апишка, которая код ошибки смогла бы перевести в строку типа INVALID_PARAMETER, ACESS_DENIED, и т.д.

    Либо прийдется забивать в программу коды ошибок и строки соотв. им самостоятельно?
     
  2. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    Код (Text):
    1. void GetLastErrorMsg(int module=0){
    2.   char s[256];
    3.   FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,0,(!module?GetLastError():WSAGetLastError()), LANG_NEUTRAL,s,256,0);
    4.   Msg(s);
    5. }
     
  3. Everhest

    Everhest New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2007
    Сообщения:
    105
    Или на Фасме:

    Код (Text):
    1. proc ShowErrorMessage hWnd,dwError
    2.   local lpBuffer:DWORD
    3.         lea       eax,[lpBuffer]
    4.         invoke  FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM,\
    5.                   0,[dwError],LANG_NEUTRAL,eax,0,0
    6.         invoke  MessageBox,[hWnd],[lpBuffer],NULL,MB_ICONERROR+MB_OK
    7.         invoke  LocalFree,[lpBuffer]
    8.         ret
    9. endp
    10.  
    11. proc ShowLastError hWnd
    12.         invoke  GetLastError
    13.         or      eax, eax
    14.         je      .endproc
    15.         stdcall ShowErrorMessage,0,eax
    16.      .endproc:
    17.         ret
    18. endp
     
  4. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    Код (Text):
    1. ErrorMessage Proc
    2. Local   pErrorMessage   :PDWORD
    3.     call    GetLastError
    4.     lea edx,pErrorMessage
    5.     xor ecx,ecx
    6.     invoke  FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM,ecx,eax,LANG_NEUTRAL,edx,ecx,ecx
    7.     invoke  MessageBox,hWndMain,pErrorMessage,0,MB_OK or MB_ICONEXCLAMATION
    8.     invoke  LocalFree,pErrorMessage
    9.     ret
    10. ErrorMessage    EndP
     
  5. Colibri

    Colibri New Member

    Публикаций:
    0
    Регистрация:
    8 май 2008
    Сообщения:
    117
    всем спасибо огромное!