DllImportAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Indique que la méthode attribuée est exposée par une bibliothèque de liens dynamiques non managées (DLL) en tant que point d’entrée statique.
public ref class DllImportAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
public sealed class DllImportAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DllImportAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
type DllImportAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DllImportAttribute = class
inherit Attribute
Public NotInheritable Class DllImportAttribute
Inherits Attribute
- Héritage
- Attributs
Exemples
L’exemple de code suivant montre comment utiliser l’attribut DllImportAttribute pour importer la fonction Win32 MessageBox . L’exemple de code appelle ensuite la méthode importée.
using System;
using System.Runtime.InteropServices;
class Example
{
// Use DllImport to import the Win32 MessageBox function.
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);
static void Main()
{
// Call the MessageBox function using platform invoke.
MessageBox(new IntPtr(0), "Hello World!", "Hello Dialog", 0);
}
}
Imports System.Runtime.InteropServices
Module Example
' Use DllImport to import the Win32 MessageBox function.
<DllImport("user32.dll", CharSet:=CharSet.Unicode)> _
Function MessageBox(ByVal hwnd As IntPtr, ByVal t As String, ByVal caption As String, ByVal t2 As UInt32) As Integer
End Function
Sub Main()
' Call the MessageBox function using platform invoke.
MessageBox(New IntPtr(0), "Hello World!", "Hello Dialog", 0)
End Sub
End Module
Remarques
Vous pouvez appliquer cet attribut aux méthodes.
L’attribut DllImportAttribute fournit les informations nécessaires pour appeler une fonction exportée à partir d’une DLL non managée. Au minimum, vous devez fournir le nom de la DLL contenant le point d’entrée.
Vous appliquez cet attribut directement aux définitions de méthode C# ; Toutefois, le compilateur Visual Basic émet cet attribut lorsque vous utilisez l’instruction Declare. Pour les définitions de méthode complexes qui incluent BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError ou ThrowOnUnmappableChar, vous appliquez cet attribut directement aux définitions de méthode Visual Basic.
Envisagez plutôt d’utiliser l’attribut LibraryImportAttribute .
Note
JScript ne prend pas en charge cet attribut. Vous pouvez utiliser C# ou Visual Basic classes wrapper pour accéder aux méthodes d’API non managées à partir de programmes JScript.
Pour plus d’informations sur l’utilisation du service d’appel de plateforme pour accéder aux fonctions dans des DLL non managées, consultez Consommation de fonctions DLL non managées.
Note
Il DllImportAttribute ne prend pas en charge le marshaling de types génériques.
Constructeurs
| Nom | Description |
|---|---|
| DllImportAttribute(String) |
Initialise une nouvelle instance de la DllImportAttribute classe avec le nom de la DLL contenant la méthode à importer. |
Champs
| Nom | Description |
|---|---|
| BestFitMapping |
Active ou désactive le comportement de mappage le mieux adapté lors de la conversion de caractères Unicode en caractères ANSI. |
| CallingConvention |
Indique la convention d’appel d’un point d’entrée. |
| CharSet |
Indique comment marshaler les paramètres de chaîne dans la méthode et les contrôles mangling de nom. |
| EntryPoint |
Indique le nom ou l’ordinal du point d’entrée DLL à appeler. |
| ExactSpelling |
Contrôle si le CharSet champ entraîne la recherche de noms de points d’entrée autres que ceux spécifiés dans le Common Language Runtime. |
| PreserveSig |
Indique si les méthodes non managées qui ont |
| SetLastError |
Indique si l’appelé définit une erreur ( |
| ThrowOnUnmappableChar |
Active ou désactive la levée d’une exception sur un caractère Unicode non modifiable converti en caractère ANSI « ? ». |
Propriétés
| Nom | Description |
|---|---|
| TypeId |
En cas d’implémentation dans une classe dérivée, obtient un identificateur unique pour cette Attribute. (Hérité de Attribute) |
| Value |
Obtient le nom du fichier DLL qui contient le point d’entrée. |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
| GetHashCode() |
Retourne le code de hachage pour cette instance. (Hérité de Attribute) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| IsDefaultAttribute() |
En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut de la classe dérivée. (Hérité de Attribute) |
| Match(Object) |
En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Récupère les informations de type d’un objet, qui peuvent être utilisées pour obtenir les informations de type d’une interface. (Hérité de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fournit l’accès aux propriétés et méthodes exposées par un objet. (Hérité de Attribute) |