Compartir a través de


C28716

advertencia C28716: conversión insertada por el compilador entre tipos enteros semánticamente diferentes

Esta advertencia indica que se usa un valor booleano como NTSTATUS sin que se convierta explícitamente. 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) indica un estado correcto cuando se prueba como NTSTATUS.

Ejemplo

PREfast notifica la advertencia para el ejemplo siguiente.

extern bool SomeMemAllocFunction(void **);

return SomeMemAllocFunction(&MyPtr);

En el ejemplo siguiente se evita el error.

extern bool SomeMemAllocFunction(void **);

if (SomeMemAllocFunction(&MyPtr) == true) {
 return STATUS_SUCCESS;
} else {
 return STATUS_NO_MEMORY;
}