DllImport против LoadLibrary, как лучше?

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


person ebattulga    schedule 14.02.2009    source источник


Ответы (2)


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

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

person Zooba    schedule 14.02.2009

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

person Toybuilder    schedule 14.02.2009
comment
Обычно это время, когда я использую LoadLibrary. - person jussij; 27.02.2009
comment
LoadLibrary также полезен для загрузки плагинов. - person oɔɯǝɹ; 20.03.2011