DllImportAttribute Osztály

Definíció

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
DllImportAttribute
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 HRESULT közvetlenül lefordítva vannak-e, vagy a HRESULT visszatérési értékek automatikusan kivételekké lesznek konvertálva.

SetLastError

Jelzi, hogy a hívó hibát állít-e be (SetLastError Windows vagy errno más platformokon), mielőtt visszatér az attribútumként megadott metódusból.

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)

A következőre érvényes:

Lásd még