Partager via


C28716

avertissement C28716 : conversion insérée dans le compilateur entre des types intégraux sémantiquement différents

Cet avertissement indique qu’une valeur booléenne est utilisée en tant que NTSTATUS sans être explicitement castée. Cela est susceptible de donner des résultats indésirables. Par instance, la valeur d’échec classique pour les fonctions qui retournent une valeur booléenne (false) indique une réussite status lorsqu’elle est testée en tant que NTSTATUS.

Exemple

PREfast signale l’avertissement pour l’exemple suivant.

extern bool SomeMemAllocFunction(void **);

return SomeMemAllocFunction(&MyPtr);

L’exemple suivant évite l’erreur.

extern bool SomeMemAllocFunction(void **);

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