DllImportAttribute Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Azt jelzi, hogy az attribútumként megadott metódust egy nem felügyelt dinamikus csatolású kódtár (DLL) teszi közzé statikus belépési pontként.
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
- Öröklődés
- Attribútumok
Példák
Az alábbi példakód bemutatja, hogyan importálhatja a Win32 DllImportAttribute függvényt az MessageBox attribútummal. A példakód ezután meghívja az importált metódust.
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
Megjegyzések
Ezt az attribútumot alkalmazhatja a metódusokra.
Az DllImportAttribute attribútum a nem felügyelt DLL-ből exportált függvény meghívásához szükséges információkat tartalmazza. Minimális követelményként meg kell adnia a belépési pontot tartalmazó DLL nevét.
Ezt az attribútumot közvetlenül a C# metódusdefiníciókra alkalmazza; A Visual Basic fordító azonban ezt az attribútumot bocsátja ki a Declare utasítás használatakor. A BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError vagy ThrowOnUnmappableChar mezőket tartalmazó összetett metódusdefiníciók esetében ezt az attribútumot közvetlenül Visual Basic metódusdefiníciókra alkalmazza.
Fontolja meg inkább az LibraryImportAttribute attribútum használatát.
Note
A JScript nem támogatja ezt az attribútumot. C# vagy Visual Basic burkolóosztályokkal hozzáférhet a JScript-programok nem felügyelt API-metódusaihoz.
A platformhívási szolgáltatás nem felügyelt DLL-ekben lévő függvények elérésére való használatával kapcsolatos további információkért lásd: Nem felügyelt DLL-függvények használata.
Note
Ez DllImportAttribute nem támogatja az általános típusok marsallálását.
Konstruktorok
| Name | Description |
|---|---|
| DllImportAttribute(String) |
Inicializálja az DllImportAttribute osztály új példányát az importálni kívánt metódust tartalmazó DLL nevével. |
Mezők
| Name | Description |
|---|---|
| BestFitMapping |
A Unicode-karakterek ANSI-karakterekké alakításakor engedélyezi vagy letiltja a legjobban illeszkedő leképezési viselkedést. |
| CallingConvention |
Egy belépési pont hívási konvencióját jelzi. |
| CharSet |
Azt jelzi, hogyan lehet sztringparamétereket alkalmazni a metódusra, és szabályozza a névkezelést. |
| EntryPoint |
A meghívni kívánt DLL belépési pont nevét vagy sorszámát jelzi. |
| ExactSpelling |
Azt határozza meg, hogy a CharSet mező hatására a közös nyelvi futtatókörnyezet nem felügyelt DLL-ben keres-e a megadotttól eltérő belépésipont-neveket. |
| PreserveSig |
Azt jelzi, hogy a visszatérési értékeket tartalmazó nem felügyelt metódusok |
| SetLastError |
Jelzi, hogy a hívó hibát állít-e be ( |
| ThrowOnUnmappableChar |
Engedélyezi vagy letiltja a kivételt egy nem alkalmazható Unicode-karakterre, amely ANSI "?" karakterré lesz konvertálva. |
Tulajdonságok
| Name | Description |
|---|---|
| TypeId |
Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap. (Öröklődés forrása Attribute) |
| Value |
Lekéri a belépési pontot tartalmazó DLL-fájl nevét. |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal. (Öröklődés forrása Attribute) |
| GetHashCode() |
A példány kivonatkódját adja vissza. (Öröklődés forrása Attribute) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsDefaultAttribute() |
Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke. (Öröklődés forrása Attribute) |
| Match(Object) |
Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e. (Öröklődés forrása Attribute) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Névkészletet képez le a küldési azonosítók megfelelő készletére. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1). (Öröklődés forrása Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz. (Öröklődés forrása Attribute) |