Exception 防止第三方dll崩溃PowerShell
我正在创建一个使用非托管API的PowerShell模块。其工作方式如下所示:Exception 防止第三方dll崩溃PowerShell,exception,powershell,crash,native,unmanaged,Exception,Powershell,Crash,Native,Unmanaged,我正在创建一个使用非托管API的PowerShell模块。其工作方式如下所示: PowerShell Module | ˅ .NET Wrapper DLL | ˅ Native DLL 本机DLL有两种方式来通信操作是否失败-将状态代码写入标准输出或抛出Win32异常。您可以通过调用API的UseExceptions()或dontuseeExceptions()来指定首选项。然而,这两种选择都很糟糕: 毫无例外,每当我成功调用函数
PowerShell Module
|
˅
.NET Wrapper DLL
|
˅
Native DLL
本机DLL有两种方式来通信操作是否失败-将状态代码写入标准输出或抛出Win32异常。您可以通过调用API的UseExceptions()
或dontuseeExceptions()
来指定首选项。然而,这两种选择都很糟糕:
0
就会显示在屏幕上。如果函数调用失败,屏幕上将显示警告消息。这不仅使检测错误变得困难,而且还使模块向用户的输出变得杂乱无章我使用的API是广泛使用的。在.NET包装器DLL中,尝试捕获SEHException,看看是否可以捕获Win32异常。另一个选择是使用CLI/C++编写.NET包装器,然后使用C++异常处理机制来捕获异常。在.NET包装器DLL中,< P>尝试捕获SEHExtExchange,看看是否可以捕获Win32异常。另一个选择是使用CLI/C++编写.NET包装器,然后使用C++异常处理机制来捕获异常。