Freigeben über


C28715

Warnung C28715: Umwandlung zwischen semantisch unterschiedlichen ganzzahligen Typen

Diese Warnung gibt an, dass ein boolescher Wert in NTSTATUS-umgelöst wird. Dies ist wahrscheinlich unerwünschte Ergebnisse. Der typische Fehlerwert für Funktionen, die einen booleschen Wert (FALSE) zurückgeben, ist beispielsweise ein Erfolgsstatus, wenn er als NTSTATUS-getestet wird.

In der Regel gibt eine Funktion, die vom Typ Boolean zurückgibt, entweder 1 (für TRUE) oder 0 (für FALSE-). Beide Werte werden vom NT_SUCCESS Makro als Erfolgscodes behandelt. Daher wird der Fehlerfall nie erkannt.

beispiele für

PREfast meldet die Warnung für das folgende Beispiel.

extern BOOL SomeFunction(void);

if (NT_SUCCESS(SomeFunction())) {
   return 0;
} else {
   return -1;
}

Im folgenden Beispiel wird der Fehler vermieden.

extern BOOL SomeFunction(void);

if (SomeFunction() == TRUE) {
   return 0;
} else {
   return -1;
}