DllImportAttribute Klasa

Definicja

Wskazuje, że metoda przypisana jest uwidoczniona przez niezarządzaną bibliotekę łącza dynamicznego (DLL) jako statyczny punkt wejścia.

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
Dziedziczenie
DllImportAttribute
Atrybuty

Przykłady

Poniższy przykład kodu pokazuje, jak za pomocą atrybutu DllImportAttribute zaimportować funkcję Win32 MessageBox . Przykład kodu wywołuje następnie zaimportowaną metodę.

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

Uwagi

Ten atrybut można zastosować do metod.

Atrybut DllImportAttribute zawiera informacje potrzebne do wywołania funkcji wyeksportowanej z niezarządzanej biblioteki DLL. Jako minimalne wymaganie należy podać nazwę biblioteki DLL zawierającej punkt wejścia.

Ten atrybut jest stosowany bezpośrednio do definicji metod C# i C++; jednak kompilator języka Visual Basic emituje ten atrybut podczas korzystania z instrukcji Declare . W przypadku złożonych definicji metod zawierających BestFitMappingpola , , CallingConventionExactSpelling, PreserveSig, SetLastErrorlub ThrowOnUnmappableChar należy zastosować ten atrybut bezpośrednio do definicji metody Języka Visual Basic.

Uwaga Język JScript nie obsługuje tego atrybutu. Klasy otoki języka C# lub Visual Basic umożliwiają uzyskiwanie dostępu do niezarządzanych metod interfejsu API z poziomu programów JScript.

Aby uzyskać dodatkowe informacje na temat używania usługi wywoływania platformy do uzyskiwania dostępu do funkcji w niezarządzanych bibliotekach DLL, zobacz Korzystanie z niezarządzanych funkcji DLL.

Uwaga

Funkcja DllImportAttribute nie obsługuje marshalingu typów ogólnych.

Konstruktory

DllImportAttribute(String)

Inicjuje DllImportAttribute nowe wystąpienie klasy o nazwie biblioteki DLL zawierającej metodę do zaimportowania.

Pola

BestFitMapping

Włącza lub wyłącza zachowanie mapowania najlepiej dopasowane podczas konwertowania znaków Unicode na znaki ANSI.

CallingConvention

Wskazuje konwencję wywoływania punktu wejścia.

CharSet

Wskazuje sposób marshalowania parametrów ciągu do metody i kontrolek nazwy mangling.

EntryPoint

Wskazuje nazwę lub porządkową punktu wejścia biblioteki DLL, który ma być wywoływany.

ExactSpelling

Określa, CharSet czy pole powoduje, że środowisko uruchomieniowe języka wspólnego wyszukuje niezarządzaną bibliotekę DLL pod kątem nazw punktów wejścia innych niż określona.

PreserveSig

Wskazuje, czy HRESULT metody niezarządzane, które mają HRESULT zwracane wartości, są bezpośrednio tłumaczone, czy zwracane wartości są automatycznie konwertowane na wyjątki.

SetLastError

Wskazuje, czy obiekt wywoływany ustawia błąd (SetLastError w systemie Windows lub errno na innych platformach) przed zwróceniem z metody przypisanej.

ThrowOnUnmappableChar

Włącza lub wyłącza zgłaszanie wyjątku dla niezatwierdzonego znaku Unicode, który jest konwertowany na znak ANSI "?"

Właściwości

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego elementu Attribute.

(Odziedziczone po Attribute)
Value

Pobiera nazwę pliku DLL zawierającego punkt wejścia.

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
IsDefaultAttribute()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

W przypadku zastąpienia w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do pobrania informacji o typie interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też