minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Na programação C#,[global::System.Runtime.InteropServices.DllImport]
É um atributo (Atributo) usado para marcar o ponto de entrada de um código não gerenciado (geralmente uma DLL ou biblioteca escrita em C ou C++) para que o código C# possa chamá-lo. Esse recurso faz parte do mecanismo P/Invoke (Platform Invocation Services), que permite que o código C# interaja com o código em outras linguagens de programação.
Quando você vê esse recurso, ele normalmente é usado para importar uma função em uma DLL para que ela possa ser chamada de dentro do código C#. Por exemplo:
- using System;
- using System.Runtime.InteropServices;
-
- class NativeMethods
- {
- // 导入DLL中的函数
- [DllImport("MyNativeLibrary.dll")]
- public static extern int MyNativeMethod(int a, int b);
- }
-
- class Program
- {
- static void Main()
- {
- // 调用DLL中的函数
- int result = NativeMethods.MyNativeMethod(1, 2);
- Console.WriteLine(result);
- }
- }
Neste exemplo,MyNativeMethod
é um emMyNativeLibrary.dll
função definida em , que é importada para o código C# para que possaMain
chamado no método.
DllImport
As propriedades possuem vários parâmetros, mas o parâmetro mais comum é o nome da DLL (como no exemplo acima). Outros parâmetros podem incluir convenção de chamada (CallingConvention), CharSet (conjunto de caracteres usado para strings), etc.
Nota: Ao usar P/Invoke com uma DLL, você deve garantir que a DLL seja compatível com seu aplicativo (ou seja, eles usam o mesmo ambiente de tempo de execução e a DLL é compilada para seu sistema operacional e arquitetura). Além disso, como o P/Invoke ignora o sistema de segurança de tipo do C#, cuidado extra deve ser tomado para garantir que os parâmetros passados e os valores retornados correspondam exatamente à assinatura da função na DLL.