DllImport vs LoadLibrary, Qual é a melhor maneira?
-
23-08-2019 - |
Pergunta
Estou geralmente usando Win32 API em C # .NET. Mas não declarar tudo em uma aplicação. Às vezes, geralmente usando user32, às vezes gdi32 ... Eu acho que quando eu declarar todas as funções API, aqueles uso muita memória. Qual é a melhor maneira usando API em .NET?
Solução
A maioria do Win32 API está disponível através de abstrações gerenciados. Caso contrário, declarar o que você precisa usando DllImport
.
LoadLibrary
realmente só deve ser usado quando você forneceu funcionalidade alternativo, ou seja, sua aplicação pode funcionar mesmo sem essa função API particular. Se a função API é crítica, usando DllImport
vai deixar a preocupação loader sobre se a função existe ou não.
Outras dicas
LoadLibrary é útil quando você está escrevendo código que pode ser usado em um ambiente que pode ou não pode ter a dll desejada - por exemplo, você pode ter um programa que pode usar uma dll especial cripto se estiver disponível, mas ainda pode operar sem ele. Usando DllImport exigiria que dll de existir.