2010-02-21 42 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

相關問題