Программирование на Ассемблере

       

Составление пользовательских функций со стандартной обработкой ошибок


При составлении пользовательских функций со стандартной обработкой ошибок необходимо:

1.                 Сформировать код ошибки, при этом в качестве кода можно выбрать стандартный код (см. файл WINERROR.H). Если среди кодов нет подходящего, то сформировать свой и определить его в своем заголовочном файле.

2.                 В функции перед возвратом обратитьсяк функции SetLastError. Заголовок функции :

VOID SetLastError (DWORD dwCode),

Где dwCode – код ошибки.

Именно этот код будет возвращен функцией GetLastError

Пример. Пусть необходимо возвратитькод: Недостаточно памяти (ERROR_NOT_ENOUGH_MEMORY)

#include <windows.h>

bool MyFun (){

      SetLastError (ERROR_NOT_ENOUGH_MEMORY);

      return false;

}

int main(int argc, char* argv[])

{

      bool b = MyFun ();

      if (!b){

         LPVOID lpMsgBuf;

       FormatMessage(

          FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(),

          MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf,    0,    NULL );

          MessageBox( NULL, (char*)lpMsgBuf, "GetLastError",MB_OK|MB_ICONINFORMATION);

          LocalFree( lpMsgBuf );

      }

      return 0;

}

Приведенный код программы выведен сообщение о недостающей памяти, на языке, принятом по умолчанию для операционной системы.



Содержание раздела