.NET PInvoke异常处理
使用PInvoke时会发生哪些异常,或者所有错误都是由方法返回值处理的,如果需要,由开发人员检查并引发异常?我不确定是否有可以引发的异常的确定列表,但我知道至少会发生以下情况.NET PInvoke异常处理,.net,pinvoke,exception,.net,Pinvoke,Exception,使用PInvoke时会发生哪些异常,或者所有错误都是由方法返回值处理的,如果需要,由开发人员检查并引发异常?我不确定是否有可以引发的异常的确定列表,但我知道至少会发生以下情况 AccessViolationException StackOverflowException 未找到名为的DLL时发生异常。我一时记不起那一种 OutOfMemoryException 这些异常类型中的大多数都不是PInvoke特有的,并且可以在程序中的任何时候发生。PInvoke调用唯一特定的一个异常是DLL no
- AccessViolationException
- StackOverflowException
- 未找到名为的DLL时发生异常。我一时记不起那一种
- OutOfMemoryException
这些异常类型中的大多数都不是PInvoke特有的,并且可以在程序中的任何时候发生。PInvoke调用唯一特定的一个异常是DLL not found异常(我不记得是谁的类型) 使用p/Invoke可以肯定地说,有两种错误需要处理
- EntryPointNotFoundException
- ExecutionEngineeException
- MissingMethodException
- 不支持例外
这就是为什么最好为您需要使用的任何本机内容创建包装器类。这样,您可以将返回结果转换为异常,并将托管代码和本机代码分开。pinvoke还会在移动设备上抛出
MissingMethodException
,当进程内存不足时:另外:
DllNotFoundException
(DLL格式错误或已损坏)BadImageFormatException
(安全透明方法尝试调用本机代码)MethodAccessException