Compartir a través de


C28714

advertencia C28714: Conversión entre tipos enteros semánticamente diferentes

Esta advertencia indica que un valor NTSTATUS se convierte explícitamente en un tipo booleano. Es probable que esto dé resultados no deseados. Por ejemplo, el valor correcto típico para NTSTATUS, STATUS_SUCCESS, es false cuando se prueba como un valor booleano.

En la mayoría de los casos, la macro NT_SUCCESS debe usarse para probar el valor de NTSTATUS. Esta macro devuelve true si el valor de estado devuelto no es una advertencia ni un código de error. Si una función devuelve un valor booleano para indicar su error o éxito, debe devolver explícitamente el tipo booleano adecuado en lugar de depender de la conversión de NTSTATUS a un tipo booleano.

Además, ocasionalmente un programa puede intentar reutilizar una variable local booleana para almacenar valores NTSTATUS . Esta práctica suele ser propensa a errores; es mucho más seguro (y probablemente más eficaz) usar una variable NTSTATUS independiente.