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 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
- 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 |
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 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) |