DllImportAttribute Klas

Definitie

Geeft aan dat de toegewezen methode wordt weergegeven door een niet-beheerde DLL (Dynamic Link Library) als een statisch toegangspunt.

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
Overname
DllImportAttribute
Kenmerken

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u het DllImportAttribute kenmerk gebruikt om de Win32-functie MessageBox te importeren. In het codevoorbeeld wordt vervolgens de geïmporteerde methode aangeroepen.

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

Opmerkingen

U kunt dit kenmerk toepassen op methoden.

Het DllImportAttribute kenmerk biedt de informatie die nodig is om een functie aan te roepen die is geëxporteerd uit een niet-beheerde DLL. Als minimale vereiste moet u de naam van het DLL-bestand opgeven dat het toegangspunt bevat.

U past dit kenmerk rechtstreeks toe op C#-methodedefinities; de Visual Basic compiler verzendt dit kenmerk echter wanneer u de instructie Declare gebruikt. Voor complexe methodedefinities met BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError of ThrowOnUnmappableChar velden, past u dit kenmerk rechtstreeks toe op Visual Basic methodedefinities. Overweeg in plaats daarvan het LibraryImportAttribute kenmerk te gebruiken.

Note

JScript biedt geen ondersteuning voor dit kenmerk. U kunt C# of Visual Basic wrapper-klassen gebruiken voor toegang tot niet-beheerde API-methoden vanuit JScript-programma's.

Zie Niet-beheerde DLL-functies gebruiken voor meer informatie over het gebruik van de platform-aanroepservice voor toegang tot functies in niet-beheerde DLL-bestanden.

Note

Het DllImportAttribute biedt geen ondersteuning voor marshaling van algemene typen.

Constructors

Name Description
DllImportAttribute(String)

Initialiseert een nieuw exemplaar van de DllImportAttribute klasse met de naam van het DLL-bestand dat de methode bevat die moet worden geïmporteerd.

Velden

Name Description
BestFitMapping

Hiermee kunt u het beste toewijzingsgedrag in- of uitschakelen bij het converteren van Unicode-tekens naar ANSI-tekens.

CallingConvention

Geeft de aanroepconventie van een toegangspunt aan.

CharSet

Hiermee wordt aangegeven hoe u parameters van marshal tekenreeksen aan de methode en besturingselementen naam mangling.

EntryPoint

Geeft de naam of rangschikk aan van het DLL-toegangspunt dat moet worden aangeroepen.

ExactSpelling

Hiermee bepaalt u of het CharSet veld ervoor zorgt dat de algemene taalruntime een niet-beheerde DLL doorzoekt op andere invoerpuntnamen dan de opgegeven DLL.

PreserveSig

Hiermee wordt aangegeven of onbeheerde methoden met HRESULT retourwaarden rechtstreeks worden omgezet of of HRESULT retourwaarden automatisch worden geconverteerd naar uitzonderingen.

SetLastError

Hiermee wordt aangegeven of de gebruiker een fout instelt (SetLastError op Windows of errno op andere platforms) voordat deze wordt geretourneerd vanuit de toegeschreven methode.

ThrowOnUnmappableChar

Hiermee kunt u het genereren van een uitzondering op een niet-toepasbaar Unicode-teken dat wordt geconverteerd naar een ANSI-teken '?' in- of uitschakelen.

Eigenschappen

Name Description
TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)
Value

Hiermee haalt u de naam op van het DLL-bestand dat het toegangspunt bevat.

Methoden

Name Description
Equals(Object)

Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van Attribute)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsDefaultAttribute()

Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse.

(Overgenomen van Attribute)
Match(Object)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Attribute)

Van toepassing op

Zie ook