Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Bubble Sort Demo - errori.c

errori.c

Caricato da: AldoBaldo
Scarica il programma completo

  1. #include "errori.h"
  2.  
  3. #include "bubble_sort_demo.h"
  4.  
  5. static CONST CHAR *gStrErr[] = {
  6.     "", // zero = nessun errore
  7.     "Memoria insufficiente. ",
  8.     "Classe non registrata. ",
  9.     "Dimensioni dello schermo insufficienti. ",
  10.     "Finestra non creata. ",
  11.     "Offscreen non creato. "
  12.  
  13.     // aggiungi qui i tuoi messaggi d'errore
  14. };
  15.  
  16. /*==============================================================================
  17. Visualizza un messaggio di errore nel caso in cui si verifichi un errore
  18. attribuibile al programma, ricavandolo dall'elenco in gStrErr.
  19. ==============================================================================*/
  20.  
  21. VOID ErroreNostrano( INT32 codice, HWND genitrice ) {
  22.     INT32 indice = codice - (codice&kErrLimMinErr);
  23.  
  24.     if( codice > kErrLimMinErr && codice < kErrLimMaxErr ) {
  25.         MessageBox( genitrice, gStrErr[indice],
  26.                     NomeCompletoProgramma(NULL), MB_OK | MB_ICONERROR );
  27.     }
  28.     else {
  29.         CHAR msg[48];
  30.         wsprintf( msg, "Errore imprevisto!\nCodice numero %d", indice );
  31.         MessageBox( genitrice, msg,
  32.                     NomeCompletoProgramma(NULL), MB_OK | MB_ICONHAND );
  33.     }
  34. }
  35.  
  36. /*==============================================================================
  37. Visualizza un messaggio di errore nel caso in cui si verifichi un errore
  38. attribuibile al malfunzionamenti del sistema, ricavandolo dalla funzione
  39. FormatMessage().
  40. ==============================================================================*/
  41.  
  42. VOID ErroreDiSistema( INT32 codice, HWND genitrice ) {
  43.     LPVOID msg = NULL;
  44.     DWORD esitoFM = 0;
  45.  
  46.     esitoFM = FormatMessage(
  47.         FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
  48.         NULL, codice, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
  49.         (LPTSTR)&msg, 1, NULL );
  50.  
  51.     if( esitoFM != 0 ) {
  52.         MessageBox( genitrice, (LPCSTR)msg,
  53.                     NomeCompletoProgramma(NULL), MB_OK | MB_ICONHAND );
  54.     }
  55.     else {
  56.         MessageBox( genitrice,
  57.                     "Errore di sistema non identificabile. ",
  58.                     NomeCompletoProgramma(NULL), MB_OK | MB_ICONHAND );
  59.     }
  60.  
  61.     if( msg ) LocalFree( msg );
  62. }
  63.  
  64. /*==============================================================================
  65. Verifica se l'errore riportato tramite il parametro "codice" e' da attribuire
  66. al programma o al sistema, rimandando quindi ad una delle due funzioni
  67. predisposte alla visualizzazione del messaggio d'errore.
  68. ==============================================================================*/
  69.  
  70. VOID Errore( INT32 codice, HWND genitrice ) {
  71.     if( codice != kErrNessunErrore ) {
  72.         if( codice & kErrLimMinErr )
  73.             ErroreNostrano( codice, genitrice );
  74.         else ErroreDiSistema( codice, genitrice );
  75.     }
  76. }
  77.  
  78. /*==============================================================================
  79. Mostra una finestra di dialogo contenente il messaggio passato in msg, un'icona
  80. punto esclamativo e un pulsante "Ok".
  81. ==============================================================================*/
  82.  
  83. VOID Notifica( CONST CHAR *msg, HWND genitrice ) {
  84.     MessageBox( genitrice, msg,
  85.                 NomeCompletoProgramma(NULL), MB_OK | MB_ICONINFORMATION );
  86. }