Freigeben über


C28714

Warnung C28714: Umwandlung zwischen semantisch unterschiedlichen Ganzzahltypen

Diese Warnung gibt an, dass ein NTSTATUS-Wert explizit in einen booleschen Typ umgewandelt wird. Dies wird wahrscheinlich zu unerwünschten Ergebnissen führen. Der typische Erfolgswert für NTSTATUS, STATUS_SUCCESS, ist beispielsweise false , wenn er als boolescher Wert getestet wird.

In den meisten Fällen sollte das makro NT_SUCCESS verwendet werden, um den Wert eines NTSTATUS zu testen. Dieses Makro gibt true zurück, wenn der zurückgegebene status Wert weder eine Warnung noch ein Fehlercode ist. Wenn eine Funktion einen Booleschen Wert zurückgibt, um den Fehler/Erfolg anzugeben, sollte sie explizit den entsprechenden booleschen Typ zurückgeben, anstatt von der Umwandlung von NTSTATUS in einen booleschen Typ abhängig zu sein.

Außerdem kann ein Programm gelegentlich versuchen, eine boolesche lokale Variable zum Speichern von NTSTATUS-Werten wiederzuverwenden. Diese Praxis ist häufig fehleranfällig; es ist viel sicherer (und wahrscheinlich effizienter), eine separate NTSTATUS-Variable zu verwenden.