Compartilhar via


C28714

aviso C28714: conversão entre tipos inteiros semanticamente diferentes

Esse aviso indica que um valor NTSTATUS está sendo convertido explicitamente em um tipo booliano. Isso provavelmente fornecerá resultados indesejáveis. Por exemplo, o valor de sucesso típico para NTSTATUS, STATUS_SUCCESS, é falso quando testado como um booliano.

Na maioria dos casos, a macro NT_SUCCESS deve ser usada para testar o valor de um NTSTATUS. Essa macro retornará true se o valor de status retornado não for um aviso nem um código de erro. Se uma função retornar um booliano para indicar sua falha/êxito, ela deverá retornar explicitamente o tipo booliano apropriado em vez de depender da conversão de NTSTATUS para um tipo booliano.

Além disso, ocasionalmente, um programa pode tentar reutilizar uma variável local booliana para armazenar valores NTSTATUS . Essa prática geralmente é propensa a erros; é muito mais seguro (e provavelmente mais eficiente) usar uma variável NTSTATUS separada.