2010-02-21 70 views
6

我以前问过,How to determine the target of a symbolic link or Reparse Point? ...并得到了an answer that suggested the use of the Win32 function GetFinalPathNameByHandle,这是Vista上第一个可用的函数。当DllImport运行时平台上没有的函数会发生什么?

如果我构建.NET程序集,然后尝试在没有GetFinalPathNameByHandle函数的WinXP或WS2003上运行,会发生什么情况?是否有运行时异常,如果有,哪一个?有没有办法让我在应用代码中处理这种情况?

回答

7

当您调用该方法时,您会得到一个EntryPointNotFoundException

如果整个DLL文件不存在,您将得到一个DllNotFoundException

+0

那些异常是正常的,可捕获的? – Cheeso 2010-02-21 16:43:46

+1

是的。是什么让你觉得他们不会? – user200783 2010-02-21 16:52:00

+0

使用LoadLibrary,GetProcAddress,FreeLibrary可以避免这个异常。不知道这是否有意义,如果你不能支持该功能。 – 2010-02-21 17:45:34

相关问题