Función SetErrorMode (errhandlingapi.h)
Controla si el sistema o el proceso controlan los tipos de error graves especificados.
Sintaxis
UINT SetErrorMode(
[in] UINT uMode
);
Parámetros
[in] uMode
Modo de error de proceso. Este parámetro puede ser uno o varios de los siguientes valores.
Valor | Significado |
---|---|
|
Use el valor predeterminado del sistema, que muestra todos los cuadros de diálogo de error. |
|
El sistema no muestra el cuadro de mensaje critical-error-handler. En su lugar, el sistema envía el error al proceso de llamada.
El procedimiento recomendado es que todas las aplicaciones llamen a la función setErrorMode |
|
El sistema corrige automáticamente los errores de alineación de memoria y los hace invisibles para la aplicación. Lo hace para el proceso de llamada y los procesos descendientes. Esta característica solo es compatible con determinadas arquitecturas de procesador. Para obtener más información, vea la sección Comentarios.
Una vez establecido este valor para un proceso, se omiten los intentos posteriores de borrar el valor. |
|
El sistema no invoca informes de errores de Windows. Para deshabilitar la interfaz de usuario de Informe de errores de Windows, llame a WerSetFlags con la marca WER_FAULT_REPORTING_NO_UI. |
|
La función OpenFile no muestra un cuadro de mensaje cuando no encuentra un archivo. En su lugar, el error se devuelve al autor de la llamada. Este modo de error invalida la marca OF_PROMPT. |
Valor devuelto
El valor devuelto es el estado anterior de las marcas de bits del modo de error.
Observaciones
Cada proceso tiene un modo de error asociado que indica al sistema cómo va a responder la aplicación a errores graves. Un proceso secundario hereda el modo de error de su proceso primario. Para recuperar el modo de error de proceso, use la función
Dado que el modo de error está establecido para todo el proceso, debe asegurarse de que las aplicaciones multiproceso no establezcan marcas de modo de error diferentes. Si lo hace, puede provocar un control de errores incoherente.
El sistema no hace que los errores de alineación sean visibles para una aplicación en todas las arquitecturas de procesador. Por lo tanto, especificar SEM_NOALIGNMENTFAULTEXCEPT no es un error en estas arquitecturas, pero el sistema es libre de omitir silenciosamente la solicitud. Esto significa que las secuencias de código como las siguientes no siempre son válidas en equipos x86:
C++ |
---|
SetErrorMode(SEM_NOALIGNMENTFAULTEXCEPT); fuOldErrorMode = SetErrorMode(0); ASSERT(fuOldErrorMode == SEM_NOALIGNMENTFAULTEXCEPT); |
Visual Studio 2005: Al declarar un puntero a una estructura que puede no tener datos alineados, puede usar la palabra clave __unaligned para indicar que el tipo debe leerse un byte cada vez. Para obtener más información, consulte alineación de datos de Windows.
Windows 7: los autores de llamadas de deben favorecer SetThreadErrorMode en SetErrorMode, ya que es menos perjudicial para el comportamiento normal del sistema.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows XP [aplicaciones de escritorio | Aplicaciones para UWP] |
servidor mínimo admitido | Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP] |
de la plataforma de destino de |
Windows |
encabezado de |
errhandlingapi.h (incluya Windows.h) |
biblioteca de |
Kernel32.lib |
DLL de |
Kernel32.dll |