为什么DDK会成功编译无效的源文件?

时间:2012-09-07 02:19:19

标签: c windows compiler-construction driver wdk

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

#include <ntddk.h>

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

    return 0;
}

然而,请注意:

&#34;离开&#34;和&#34;除了&#34;不是有效的C语言密码。

我知道__leave和__except(即带有双前导下划线)都是特定于微软的关键字来扩展C语言,但是&#34;离开&#34;和&#34;除了&#34;不

我也确认&#34;离开&#34;和&#34;除了&#34;不是由宏定义的。 MSDN对此没有解释。

谁可以给我一个解释?提前谢谢。

1 个答案:

答案 0 :(得分:3)

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