DllImportAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- Atrybuty
Przykłady
Poniższy przykład kodu przedstawia sposób użycia atrybutu DllImportAttribute do zaimportowania funkcji Win32 MessageBox . Przykładowy kod wywołuje 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 języka C#; jednak kompilator Visual Basic emituje ten atrybut podczas korzystania z instrukcji Declare. W przypadku złożonych definicji metod, które obejmują BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError lub ThrowOnUnmappableChar pola, należy zastosować ten atrybut bezpośrednio do definicji metody Visual Basic.
Rozważ użycie atrybutu LibraryImportAttribute zamiast tego.
Note
Język JScript nie obsługuje tego atrybutu. Klas otoki języka C# lub Visual Basic można używać do uzyskiwania 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.
Note
Funkcja DllImportAttribute nie obsługuje marshalingu typów ogólnych.
Konstruktory
| Nazwa | Opis |
|---|---|
| DllImportAttribute(String) |
Inicjuje nowe wystąpienie DllImportAttribute klasy o nazwie biblioteki DLL zawierającej metodę do zaimportowania. |
Pola
| Nazwa | Opis |
|---|---|
| BestFitMapping |
Włącza lub wyłącza najlepsze zachowanie mapowania podczas konwertowania znaków Unicode na znaki ANSI. |
| CallingConvention |
Wskazuje konwencję wywoływania punktu wejścia. |
| CharSet |
Wskazuje sposób marshalingu 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 dla nazw punktów wejścia innych niż określona. |
| PreserveSig |
Wskazuje, czy niezarządzane metody, które mają |
| SetLastError |
Wskazuje, czy obiekt wywoływany ustawia błąd ( |
| ThrowOnUnmappableChar |
Włącza lub wyłącza zgłaszanie wyjątku dla niezastosowanego znaku Unicode konwertowanego na znak ANSI "?". |
Właściwości
| Nazwa | Opis |
|---|---|
| TypeId |
Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute. (Odziedziczone po Attribute) |
| Value |
Pobiera nazwę pliku DLL zawierającego punkt wejścia. |
Metody
| Nazwa | Opis |
|---|---|
| Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po Attribute) |
| GetHashCode() |
Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone po Attribute) |
| GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
| IsDefaultAttribute() |
Po zastąpieniu w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej. (Odziedziczone po Attribute) |
| Match(Object) |
Po zastąpieniu 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 Object. (Odziedziczone po Object) |
| ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
| Nazwa | Opis |
|---|---|
| _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 uzyskania informacji o typie dla 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) |
Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt. (Odziedziczone po Attribute) |