DllImport vs LoadLibrary, как лучше? - PullRequest
       35

DllImport vs LoadLibrary, как лучше?

3 голосов
/ 14 февраля 2009

Я обычно использую Win32 API в c # .NET. Но не объявляйте все в одном приложении. Иногда обычно использую user32, иногда gdi32 ... Я думаю, когда я объявляю все функции API, они используют много памяти. Как лучше всего использовать API в .NET?

Ответы [ 2 ]

9 голосов
/ 14 февраля 2009

LoadLibrary полезен, когда вы пишете код, который может использоваться в среде, которая может иметь или не иметь желаемую DLL - например, у вас может быть программа, которая может использовать специальную криптографическую DLL, если она доступна, но все еще может работать без него. Использование DllImport потребует существования dll.

5 голосов
/ 14 февраля 2009

Большая часть Win32 API доступна через управляемые абстракции. В противном случае объявите те, которые вам нужны, используя DllImport.

LoadLibrary действительно следует использовать только в том случае, если вы предоставили альтернативную функциональность, то есть ваше приложение может работать даже без этой конкретной функции API. Если функция API критична, использование DllImport позволит загрузчику беспокоиться о том, существует функция или нет.

...