【发布时间】:2010-12-13 18:57:19
【问题描述】:
找到解决方案的帖子:How do I handle a failed DllImport?
我正在编写一个应用程序来检查操作系统版本以根据主机使用的是 Vista 系列还是 NT 系列版本的 Windows 来执行不同的操作。如果是 Vista 系列,它会加载一些 DLL(使用 DllImport),但不使用这些。问题是,如果在没有这些 DLL 的旧版本 Windows 上使用 DllImport 加载它们,将在运行时导致 DllNotFoundException。
如何捕获/防止/忽略 DllNotFoundExceptions?尝试在我的未处理异常事件中将异常设置为“已处理”不允许应用继续。
【问题讨论】:
-
异常是在调用点还是在程序加载时抛出(但在您实际尝试调用这些函数之前)?
-
捕获异常不是最理想的,因为应该避免将异常作为正常应用程序流程的一部分。在您的情况下,在特定平台上,每个调用都会首先抛出一个异常,如果可能的话我会避免。
标签: c# pinvoke dllimport dllnotfoundexception