代码之家  ›  专栏  ›  技术社区  ›  clyfe

Microsoft Windows驱动程序工具包纯C Try-Catch语法?

  •  1
  • clyfe  · 技术社区  · 14 年前

    Windows Driver Kit (WDK) 有一些驱动程序代码示例是用纯C编写的,但还附带了一些try-catch finally构造。有人知道他们的语义吗?感谢微软为您提供了出色的工具和标准遵从性。

    代码提取自 some_file.c :

    try {
        ...
        if (!NT_SUCCESS( status )) {
    
           leave; // ???
        }
        ...
    } finally {
        ...
    }
    
    try  {
        ...
    } except( EXCEPTION_EXECUTE_HANDLER ) {
        ...
    }
    
    1 回复  |  直到 9 年前
        1
  •  3
  •   Christopher    14 年前

    WDK中的Try/Except处理遵循整个Windows中使用的SEH模型。请注意,捕获异常后可以继续。

    这个模型早于C++,所以C++标准与Win32所使用的异常模型不一样。

    ps:c没有异常处理,所以seh是c的非标准扩展。

    SEH exception handling in the MSDN

    Introduction to SEH