J'ai précédemment demandé, How to determine the target of a symbolic link or Reparse Point? ... et obtenu an answer that suggested the use of the Win32 function GetFinalPathNameByHandle, une fonction disponible d'abord sur Vista. Que se passe-t-il si je compile l'assembly .NET et que j'essaie de l'exécuter sur WinXP ou WS2003, qui n'a pas la fonction GetFinalPathNameByHandle? Y a-t-il une exception d'exécution, et si oui, laquelle? Y a-t-il un moyen pour moi de gérer ce cas dans le code de l'application?Que se passe-t-il lorsque je DllImport une fonction qui n'est pas disponible sur la plate-forme d'exécution?
6
A
Répondre
7
Vous obtiendrez un EntryPointNotFoundException
lorsque vous appelez la méthode.
Si le fichier DLL entier n'existe pas, vous obtiendrez un DllNotFoundException
à la place.
Et ces exceptions sont normales, attrapables? – Cheeso
Oui. Qu'est-ce qui vous fait penser qu'ils ne seraient pas? – user200783
L'utilisation de LoadLibrary, GetProcAddress, FreeLibrary peut éviter l'exception. Je ne sais pas si cela a du sens si vous ne pouvez pas supporter la fonctionnalité de toute façon. –