DllImportAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
- 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 |
| SetLastError |
Hiermee wordt aangegeven of de gebruiker een fout instelt ( |
| 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) |