Definición: ¿Qué significa el atributo DllImport?
El atributo DllImport es una etiqueta declarativa que se usa en C # para marcar un método de clase como definido en una biblioteca externa de vínculos dinámicos (DLL) en lugar de en cualquier ensamblado .NET.
El atributo DllImport se usa en tiempo de ejecución para llamar a una función exportada en una DLL externa implementada con código no administrado que se ejecuta fuera del control de Common Language Runtime (CLR). También se utiliza para especificar otra información necesaria al llamar a la función, como la convención de llamada, el tipo de conversión de los parámetros pasados entre código administrado y no administrado, etc. Por lo tanto, se usa para interoperar con código en componentes heredados y no administrados que residen en Windows. DLL y está escrito en C o C ++.
DllImport es útil en situaciones en las que la funcionalidad de una aplicación administrada, cuyo código es ejecutado por CLR, se puede extender solo accediendo y reutilizando la funcionalidad de la interfaz de programación de aplicaciones (API) Win32 y otros códigos no administrados definidos por el usuario que están implementados en DLL. Esto puede ahorrar esfuerzos de desarrollo y hacer uso del código robusto y bien probado existente sin reinventar la rueda en una aplicación administrada. Por lo general, se necesita al usar archivos DLL que no se pueden reescribir pero que tienen la capacidad de modificarse.
Techinfo explica el atributo DllImport
El atributo DllImport es una declaración de declaración para que la función exportada se llame desde la aplicación administrada. No se puede utilizar para una función miembro, que requiere una instancia de clase. Se especifica en tiempo de diseño entre llaves antes de la declaración del método para el que se aplica. Es necesario utilizar la cadena "extern" antes de la declaración de función.
Por ejemplo, el atributo DllImport se puede usar en la aplicación Windows Forms, que es una aplicación administrada para invocar un método de un componente de modelo de objeto de componente (cuyo código no está administrado) para realizar algunos cálculos.
Está diseñado para importar las DLL tradicionales que exportan sus funciones utilizando el mecanismo de exportación DLL de Windows original. No está diseñado para usar código en ensamblado administrado (como DLL), al que se puede hacer referencia directamente en el proyecto de la aplicación administrada.
El atributo DllImport utiliza InteropServices de CLR, que ejecuta la llamada desde el código administrado al código no administrado. También informa al compilador sobre la ubicación de la implementación de la función utilizada. Cuando se llama a la función contenedora no administrada con este atributo en el código administrado, CLR ubica y carga la DLL necesaria. Calcula (convierte los parámetros según la especificación) y devuelve el código no administrado después de la ejecución, junto con la conversión adecuada de parámetros.
Al usar el atributo DllImport, se debe tener cuidado de usar el nombre correcto de la DLL y la función exportada porque pueden ocurrir errores tipográficos en lugares donde no se pueden detectar fácilmente.