DllImportAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Označuje, že metoda s atributem je zpřístupněna nespravovanou dynamickou knihovnou (DLL) jako statický vstupní bod.
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
- Dědičnost
- Atributy
Příklady
Následující příklad kódu ukazuje, jak pomocí atributu DllImportAttribute importovat funkci Win32 MessageBox
. Příklad kódu pak zavolá importovanou metodu.
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
Poznámky
Tento atribut můžete použít u metod.
Atribut DllImportAttribute poskytuje informace potřebné k volání funkce exportované z nespravované knihovny DLL. Jako minimální požadavek musíte zadat název knihovny DLL obsahující vstupní bod.
Tento atribut použijete přímo na definice metod jazyka C# a C++; kompilátor jazyka Visual Basic však při použití Declare
příkazu generuje tento atribut. Pro komplexní definice metod, které zahrnují BestFitMappingCallingConvention, , ExactSpellingPreserveSig, SetLastErrornebo ThrowOnUnmappableChar pole, použijte tento atribut přímo na definice metod jazyka Visual Basic.
Poznámka Jazyk JScript tento atribut nepodporuje. Pro přístup k nespravovaným metodám rozhraní API z programů JScript můžete použít obálkové třídy jazyka C# nebo Visual Basic.
Další informace o použití služby volání platformy pro přístup k funkcím v nespravovaných knihovnách DLL najdete v tématu Využívání nespravovaných funkcí knihovny DLL.
Poznámka
Nepodporuje DllImportAttribute zařazování obecných typů.
Konstruktory
DllImportAttribute(String) |
Inicializuje novou instanci DllImportAttribute třídy s názvem knihovny DLL obsahující metodu importu. |
Pole
BestFitMapping |
Povolí nebo zakáže nejlepší chování mapování při převodu znaků Unicode na znaky ANSI. |
CallingConvention |
Označuje konvenci volání vstupního bodu. |
CharSet |
Určuje, jak zařakovat parametry řetězce do metody a ovládacích prvků name mangling. |
EntryPoint |
Označuje název nebo řadové číslo pro vstupní bod knihovny DLL, který má být volán. |
ExactSpelling |
Určuje, zda CharSet pole způsobí, že modul CLR (Common Language Runtime) vyhledá v nespravované knihovně DLL jiné názvy vstupních bodů než zadané. |
PreserveSig |
Určuje, zda jsou nespravované metody, které mají |
SetLastError |
Určuje, zda volaný nastaví chybu ( |
ThrowOnUnmappableChar |
Povolí nebo zakáže vyvolání výjimky u nemapovatelného znaku Unicode, který je převeden na znak ANSI "?". |
Vlastnosti
TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tuto Attributetřídu . (Zděděno od Attribute) |
Value |
Získá název souboru DLL, který obsahuje vstupní bod. |
Metody
Equals(Object) |
Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
GetHashCode() |
Vrátí hodnotu hash pro tuto instanci. (Zděděno od Attribute) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
IsDefaultAttribute() |
Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnotou pro odvozenou třídu. (Zděděno od Attribute) |
Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno od Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, které lze použít k získání informací o typu pro rozhraní. (Zděděno od Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). (Zděděno od Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. (Zděděno od Attribute) |