Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
предупреждение C28715: приведение между семантически разными целыми типами
Это предупреждение указывает, что логическое значение приведение к NTSTATUS. Это, вероятно, даст нежелательные результаты. Например, типичное значение сбоя для функций, возвращающих логическое значение (FALSE) является состоянием успешности при тестировании в качестве NTSTATUS.
Как правило, функция, возвращающая логическое значение, возвращает значение 1 (для TRUE) или 0 (для FALSE). Оба этих значения рассматриваются как коды успешности с помощью макроса NT_SUCCESS. Таким образом, случай сбоя никогда не будет обнаружен.
Примеры
PREfast сообщает предупреждение для следующего примера.
extern BOOL SomeFunction(void);
if (NT_SUCCESS(SomeFunction())) {
return 0;
} else {
return -1;
}
В следующем примере не возникает ошибка.
extern BOOL SomeFunction(void);
if (SomeFunction() == TRUE) {
return 0;
} else {
return -1;
}