Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
advertencia C28715: Conversión entre tipos enteros semánticamente diferentes
Esta advertencia indica que se está conversión de un valor booleano a NTSTATUS. Esto es probable que proporcione resultados no deseados. Por ejemplo, el valor de error típico de las funciones que devuelven un valor booleano (FALSE) es un estado correcto cuando se prueba como un NTSTATUS.
Normalmente, una función que devuelve booleano devuelve 1 (para TRUE) o 0 (para FALSE). Ambos valores se tratan como códigos de éxito mediante la macro NT_SUCCESS. Por lo tanto, nunca se detectará el caso de error.
Ejemplos de
PREfast informa de la advertencia para el ejemplo siguiente.
extern BOOL SomeFunction(void);
if (NT_SUCCESS(SomeFunction())) {
return 0;
} else {
return -1;
}
En el ejemplo siguiente se evita el error.
extern BOOL SomeFunction(void);
if (SomeFunction() == TRUE) {
return 0;
} else {
return -1;
}