Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What happens when I DllImport a function that is not available on the runtime platform?

I previously asked, How to determine the target of a symbolic link or Reparse Point? ...and got an answer that suggested the use of the Win32 function GetFinalPathNameByHandle, a function first available on Vista.

What happens if I build the .NET Assembly and then attempt to run it on WinXP, or WS2003, which does not have the GetFinalPathNameByHandle function? Is there a runtime exception, and if so, which one? Is there a way for me to handle that case in the app code?

like image 971
Cheeso Avatar asked Feb 21 '10 16:02

Cheeso


1 Answers

You'll get an EntryPointNotFoundException when you call the method.

If the entire DLL file doesn't exist, you'll get a DllNotFoundException instead.

like image 171
SLaks Avatar answered Oct 17 '22 18:10

SLaks