Last-Error Code

Quando si verifica un errore, la maggior parte delle funzioni di sistema restituisce un codice di errore, in genere 0, NULL o –1. Molte funzioni di sistema impostano anche un codice di errore aggiuntivo denominato last-error code. Questo codice di errore viene mantenuto separatamente per ogni thread in esecuzione; un errore in un thread non sovrascrive l'ultimo codice di errore in un altro thread. Qualsiasi funzione può chiamare la funzione SetLastError o SetLastErrorEx per impostare l'ultimo codice di errore per il thread corrente. Queste funzioni sono destinate principalmente alle librerie a collegamento dinamico (DLL), in modo da poter fornire informazioni all'applicazione chiamante. Si noti che alcune funzioni chiamano SetLastError o SetLastErrorEx con 0 quando hanno esito positivo, eliminando il codice di errore impostato dalla funzione non riuscita più di recente, mentre altri no.

Un'applicazione può recuperare l'ultimo codice di errore usando la funzione GetLastError . Il codice di errore può indicare di più su ciò che effettivamente si è verificato per fare in modo che la funzione non riesca. La documentazione per le funzioni di sistema indicherà le condizioni in cui la funzione imposta l'ultimo codice di errore.

Il sistema definisce un set di codici di errore che possono essere impostati come codici di ultimo errore o restituiti da queste funzioni. I codici di errore sono valori a 32 bit (bit 31 è il bit più significativo). Bit 29 è riservato per i codici di errore definiti dall'applicazione; nessun codice di errore di sistema ha questo bit impostato. Se si definiscono codici di errore per l'applicazione, impostare questo bit per indicare che il codice di errore è stato definito da un'applicazione e per assicurarsi che i codici di errore non siano in conflitto con i codici di errore definiti dal sistema. Per altre informazioni, vedere Codici errore di sistema e WinError.h.