c# - DllImport vs LoadLibrary, ¿cuál es la mejor manera?
winapi (2)
LoadLibrary es útil cuando está escribiendo código que podría usarse en un entorno que puede tener o no el dll deseado; por ejemplo, podría tener un programa que pueda usar un dll crypto especial si está disponible, pero aún puede operar sin ello. Usar DllImport requeriría que dll exista.
usualmente uso Win32 API en c # .NET. Pero no declarar todo en una aplicación. A veces usualmente uso user32, a veces gdi32 ... Creo que cuando declaro todas las funciones api, esas usan mucha memoria. ¿Cuál es la mejor forma de usar API en .NET?
La mayor parte de la API de Win32 está disponible a través de abstracciones administradas. De lo contrario, declare los que necesita utilizando DllImport
.
LoadLibrary
solo debería usarse donde haya proporcionado una funcionalidad alternativa, es decir, su aplicación puede funcionar incluso sin esa función API particular. Si la función API es crítica, el uso de DllImport
permitirá que el cargador se preocupe si la función existe o no.