Mi información de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
En programación C#,[global::System.Runtime.InteropServices.DllImport]
Es un atributo (Atributo) que se utiliza para marcar el punto de entrada de un código no administrado (generalmente una DLL o biblioteca escrita en C o C++) para que el código C# pueda llamarlo. Esta característica es parte del mecanismo P/Invoke (Servicios de invocación de plataforma), que permite que el código C# interactúe con el código de otros lenguajes de programación.
Cuando ve esta característica, generalmente se usa para importar una función en una DLL para poder llamarla en código C#. Por ejemplo:
- 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);
- }
- }
En este ejemplo,MyNativeMethod
es uno enMyNativeLibrary.dll
función definida en , que se importa al código C# para que pueda serMain
llamado en el método.
DllImport
Las propiedades tienen varios parámetros, pero el parámetro más común es el nombre de la DLL (como en el ejemplo anterior). Otros parámetros pueden incluir la convención de llamada (CallingConvention), CharSet (conjunto de caracteres utilizado para cadenas), etc.
Nota: Cuando utilice P/Invoke con una DLL, debe asegurarse de que la DLL sea compatible con su aplicación (es decir, utilicen el mismo entorno de ejecución y la DLL esté compilada para su sistema operativo y arquitectura). Además, debido a que P/Invoke omite el sistema de seguridad de tipos de C#, se debe tener especial cuidado para garantizar que los parámetros pasados y los valores devueltos coincidan exactamente con la firma de la función en la DLL.