Partager via


DllImportAttribute Classe

Définition

Indique que la méthode avec attributs est exposée par une bibliothèque de liens dynamiques (DLL) non managée comme 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 à des 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éthodes C# et C++ ; Toutefois, le compilateur Visual Basic émet cet attribut lorsque vous utilisez l’instruction Declare . Pour les définitions de méthodes complexes qui incluent BestFitMapping, ExactSpellingCallingConvention, PreserveSig, SetLastError, ou ThrowOnUnmappableChar des champs, vous appliquez cet attribut directement aux définitions de méthode Visual Basic.

Note JScript ne prend pas en charge cet attribut. Vous pouvez utiliser des classes wrapper C# ou Visual Basic 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 à des fonctions dans des DLL non managées, consultez Consommation de fonctions DLL non managées.

Notes

ne prend pas en charge le DllImportAttribute marshaling des types génériques.

Constructeurs

DllImportAttribute(String)

Initialise une nouvelle instance de la classe DllImportAttribute avec le nom de la DLL contenant la méthode à importer.

Champs

BestFitMapping

Active ou désactive le comportement de mappage ajusté 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 vers la méthode et contrôle la composition des noms.

EntryPoint

Indique le nom ou le numéro du point d'entrée de DLL à appeler.

ExactSpelling

Contrôle si le champ CharSet déclenche la recherche de noms, par le Common Language Runtime, de points d'entrée autres que celui spécifié dans la DLL non managée.

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 retourner à partir de la méthode avec attributs.

ThrowOnUnmappableChar

Active ou désactive la levée d'une exception sur un caractère Unicode non mappable converti en caractère ANSI "?".

Propriétés

TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.

(Hérité de Attribute)
Value

Obtient le nom du fichier DLL contenant le point d'entrée.

Méthodes

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 de cette instance.

(Hérité de Attribute)
GetType()

Obtient le 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 pour la classe dérivée.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

_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 pour 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 aux méthodes exposées par un objet.

(Hérité de Attribute)

S’applique à

Voir aussi