Attribut dllimport

Définition - Que signifie l'attribut DllImport?

L'attribut DllImport est une balise déclarative utilisée en C # pour marquer une méthode de classe comme étant définie dans une bibliothèque de liens dynamiques externe (DLL) plutôt que dans un assembly .NET.

L'attribut DllImport est utilisé au moment de l'exécution pour appeler une fonction exportée dans une DLL externe implémentée avec du code non managé qui est exécuté en dehors du contrôle du Common Language Runtime (CLR). Il est également utilisé pour spécifier d'autres informations nécessaires lors de l'appel de la fonction, comme la convention d'appel, le type de conversion des paramètres passés entre le code géré et non géré, etc. Ainsi, il est utilisé pour interagir avec le code dans les composants non gérés et hérités qui résident dans Windows DLL et est écrit en C ou C ++.

DllImport est utile dans les situations où la fonctionnalité d'une application gérée, dont le code est exécuté par CLR, ne peut être étendue qu'en accédant et en réutilisant la fonctionnalité de l'interface de programmation d'application (API) Win32 et d'autres codes non gérés définis par l'utilisateur qui sont implémentés dans DLL. Cela permet d'économiser des efforts de développement et d'utiliser un code existant robuste et bien testé sans réinventer la roue dans une application gérée. Il est généralement nécessaire lors de l'utilisation de DLL qui ne peuvent pas être réécrites mais qui peuvent être modifiées.

Definir Tech explique l'attribut DllImport

L'attribut DllImport est une instruction de déclaration pour la fonction exportée à appeler à partir de l'application gérée. Il ne peut pas être utilisé pour une fonction membre, qui nécessite une instance de classe. Il est spécifié au moment du design entre accolades avant la déclaration de la méthode pour laquelle il est appliqué. Il est nécessaire d'utiliser la chaîne «extern» avant la déclaration de fonction.

Par exemple, l'attribut DllImport peut être utilisé dans l'application Windows Forms, qui est une application gérée pour appeler une méthode d'un composant de modèle d'objet composant (dont le code n'est pas géré) pour effectuer certains calculs.

Il est conçu pour importer les DLL traditionnelles qui exportent leurs fonctions à l'aide du mécanisme d'exportation de DLL Windows d'origine. Il n'est pas conçu pour utiliser du code dans un assembly managé (en tant que DLL), qui peut être référencé directement dans le projet de l'application gérée.

L'attribut DllImport utilise les InteropServices du CLR, qui exécute l'appel du code managé au code non managé. Il informe également le compilateur de l'emplacement de l'implémentation de la fonction utilisée. Lorsque la fonction wrapper non managée avec cet attribut dans le code managé est appelée, le CLR localise et charge la DLL nécessaire. Il rassemble (convertit les paramètres selon la spécification) et renvoie le code non managé après exécution, avec une conversion appropriée des paramètres.

Lors de l'utilisation de l'attribut DllImport, il faut prendre soin d'utiliser le nom correct de la DLL et de la fonction exportée car des fautes de frappe peuvent se produire dans des endroits où elles ne peuvent pas être facilement détectées.