Microsoft Windows драйвер комплект чистых C попробовать поймать синтаксис? - PullRequest
1 голос
/ 31 мая 2010

В Windows Driver Kit (WDK) есть некоторые примеры кода драйвера, написанные на чистом C, но с добавлением некоторых конструкций try-catch-finally. Кто-то знает их семантику? Спасибо, Майкрософт, за великолепные инструменты и соответствие стандартам.

Извлечение кода из some_file.c:

try {
    ...
    if (!NT_SUCCESS( status )) {

       leave; // ???
    }
    ...
} finally {
    ...
}

try  {
    ...
} except( EXCEPTION_EXECUTE_HANDLER ) {
    ...
}

1 Ответ

3 голосов
/ 31 мая 2010

Обработка try / кроме в WDK соответствует модели SEH, используемой во всех окнах. Обратите внимание, что вы можете продолжить после получения исключения.

Эта модель предшествует C ++, поэтому стандарт C ++ отличается от модели исключений, используемой в Win32.

PS: C не имеет обработки исключений, поэтому SEH является нестандартным расширением для C.

Обработка исключений SEH в MSDN

Введение в SEH

...