DllImportAttribute Classe

Définition

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
DllImportAttribute
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 HRESULT des valeurs de retour sont directement traduites ou si HRESULT les valeurs de retour sont automatiquement converties en exceptions.

SetLastError

Indique si l’appelé définit une erreur (SetLastError sur Windows ou errno sur d’autres plateformes) avant de revenir de la méthode attribuée.

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)

S’applique à

Voir aussi