Tabla de contenido:
Definición - ¿Qué significa DllImport Attribute?
DllImport Attribute es una etiqueta declarativa utilizada en C # para marcar un método de clase como definido en una biblioteca externa de enlace dinámico (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 usa 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 el código administrado y el no administrado, etc. Por lo tanto, se utiliza para interoperar con el código en componentes no administrados y heredados 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, solo se puede ampliar 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 se implementan en DLL. Esto puede ahorrar esfuerzo de desarrollo y hacer uso del código existente robusto y bien probado 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.
Techopedia explica DllImport Attribute
El atributo DllImport es una declaración de declaración para la función exportada que se llamará desde la aplicación administrada. No se puede usar para una función miembro, que requiere una instancia de clase. Se especifica en tiempo de diseño entre corchetes 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 la 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 del modelo de objeto 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 de DLL original de Windows. No está diseñado para usar código en el ensamblado administrado (como DLL), al que se puede hacer referencia directamente en el proyecto de la aplicación administrada.
El atributo DllImport usa los InteropServices del 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 de contenedor no administrado con este atributo en el código administrado, el CLR localiza y carga la DLL necesaria. Ordena (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 los 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 los errores tipográficos pueden ocurrir en lugares donde no se pueden detectar fácilmente.