2

首先,您可以通过 DDK 构建实用程序成功编译以下 main.c。

#include <ntddk.h>

NTSTATUS DriverEntry(PDRIVER_OBJECT, PUNICODE_STRING)
{
    try
    {
        leave;
    }
    except (1)
    {
    }

    return 0;
}

但是,请注意:

“leave”和“except”都不是有效的 C 语言关键字。

我知道 __leave 和 __except (即带有双前导下划线)都是微软特定的关键字来扩展 C 语言,但“leave”和“except”不是。

我还确认宏没有定义“离开”和“除外”。MSDN对此没有解释。

谁能给我一个解释?提前致谢。

4

1 回答 1

3

正如 Rohan 所指出的,它们是由warning.h. 这些定义是为了向后兼容使用非下划线版本的旧代码。

于 2012-09-07T17:39:44.450 回答