DllImportAttribute DllImportAttribute DllImportAttribute DllImportAttribute Class

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.Indicates that the attributed method is exposed by an unmanaged dynamic-link library (DLL) as a static entry point.

public ref class DllImportAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DllImportAttribute : Attribute
type DllImportAttribute = class
    inherit Attribute
Public NotInheritable Class DllImportAttribute
Inherits Attribute
Héritage
DllImportAttributeDllImportAttributeDllImportAttributeDllImportAttribute
Attributs

Exemples

L’exemple de code suivant montre comment utiliser l' DllImportAttribute attribut pour importer la fonction MessageBox Win32.The following code example shows how to use the DllImportAttribute attribute to import the Win32 MessageBox function. L’exemple de code appelle ensuite la méthode importée.The code example then calls the imported method.

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
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.You can apply this attribute to methods.

L' DllImportAttribute attribut fournit les informations nécessaires pour appeler une fonction exportée à partir d’une DLL non managée.The DllImportAttribute attribute provides the information needed to call a function exported from an unmanaged DLL. Au minimum, vous devez fournir le nom de la DLL contenant le point d’entrée.As a minimum requirement, you must supply the name of the DLL containing the entry point.

Vous appliquez cet attribut directement aux C# définitions C++ et de méthode; Toutefois, le compilateur Visual Basic émet cet attribut lorsque vous utilisez l' Declare instruction.You apply this attribute directly to C# and C++ method definitions; however, the Visual Basic compiler emits this attribute when you use the Declare statement. Pour les définitions de méthode complexes BestFitMappingqui CallingConventionincluent des PreserveSigchamps SetLastError,, ThrowOnUnmappableChar ExactSpelling,, ou, vous appliquez cet attribut directement à Visual Basic définitions de méthode.For complex method definitions that include BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError, or ThrowOnUnmappableChar fields, you apply this attribute directly to Visual Basic method definitions.

Remarque JScript ne prend pas en charge cet attribut.Note JScript does not support this attribute. Vous pouvez utiliser C# des classes wrapper ou Visual Basic pour accéder aux méthodes d’API non managées à partir de programmes JScript.You can use C# or Visual Basic wrapper classes to access unmanaged API methods from JScript programs.

Pour plus d’informations sur l’utilisation du service d’appel de code non managé pour accéder aux fonctions des dll non managées, consultez consommation de fonctions DLL non managées.For additional information about using the platform invoke service to access functions in unmanaged DLLs, see Consuming Unmanaged DLL Functions.

Notes

Ne DllImportAttribute prend pas en charge le marshaling de types génériques.The DllImportAttribute does not support marshaling of generic types.

Constructeurs

DllImportAttribute(String) DllImportAttribute(String) DllImportAttribute(String) DllImportAttribute(String)

Initialise une nouvelle instance de la classe DllImportAttribute avec le nom de la DLL contenant la méthode à importer.Initializes a new instance of the DllImportAttribute class with the name of the DLL containing the method to import.

Champs

BestFitMapping BestFitMapping BestFitMapping BestFitMapping

Active ou désactive le comportement de mappage ajusté lors de la conversion de caractères Unicode en caractères ANSI.Enables or disables best-fit mapping behavior when converting Unicode characters to ANSI characters.

CallingConvention CallingConvention CallingConvention CallingConvention

Indique la convention d'appel d'un point d'entrée.Indicates the calling convention of an entry point.

CharSet CharSet CharSet CharSet

Indique comment marshaler les paramètres de chaîne vers la méthode et contrôle la composition des noms.Indicates how to marshal string parameters to the method and controls name mangling.

EntryPoint EntryPoint EntryPoint EntryPoint

Indique le nom ou le numéro du point d'entrée de DLL à appeler.Indicates the name or ordinal of the DLL entry point to be called.

ExactSpelling ExactSpelling ExactSpelling 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.Controls whether the CharSet field causes the common language runtime to search an unmanaged DLL for entry-point names other than the one specified.

PreserveSig PreserveSig PreserveSig PreserveSig

Indique si les méthodes non managées qui ont les valeurs de retour HRESULT ou retval sont traduites directement ou si les valeurs de retour HRESULT ou retval sont automatiquement converties en exceptions.Indicates whether unmanaged methods that have HRESULT or retval return values are directly translated or whether HRESULT or retval return values are automatically converted to exceptions.

SetLastError SetLastError SetLastError SetLastError

Indique si l'appelé appelle la fonction API Windows SetLastError avant de retourner la valeur à partir de la méthode avec attributs.Indicates whether the callee calls the SetLastError Windows API function before returning from the attributed method.

ThrowOnUnmappableChar ThrowOnUnmappableChar ThrowOnUnmappableChar ThrowOnUnmappableChar

Active ou désactive la levée d'une exception sur un caractère Unicode non mappable converti en caractère ANSI "?".Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI "?" character.

Propriétés

TypeId TypeId TypeId TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)
Value Value Value Value

Obtient le nom du fichier DLL contenant le point d'entrée.Gets the name of the DLL file that contains the entry point.

Méthodes

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Retourne le code de hachage de cette instance.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() 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.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)

Implémentations d’interfaces explicites

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _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.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _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.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

S’applique à

Voir aussi