DllImportAttribute Třída

Definice

Označuje, že atribut metoda 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
DllImportAttribute
Atributy

Příklady

Následující příklad kódu ukazuje, jak použít DllImportAttribute atribut k importu funkce Win32 MessageBox . Příklad kódu pak volá 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 je nutné 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 vygeneruje tento atribut. U komplexních definic metod, které zahrnují BestFitMappingpole , CallingConventionExactSpelling, PreserveSig, SetLastErrorneboThrowOnUnmappableChar, použijete tento atribut přímo na definice metod jazyka Visual Basic.

Poznámka Jazyk JScript tento atribut nepodporuje. Pomocí tříd obálky jazyka C# nebo Visual Basicu můžete získat přístup k nespravovaným metodám rozhraní API z aplikací JScript.

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žití nespravovaných funkcí knihovny DLL.

Poznámka

Nástroj DllImportAttribute nepodporuje 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ů mangling názvů.

EntryPoint

Označuje název nebo ordinál vstupního bodu knihovny DLL, který má být volán.

ExactSpelling

Určuje, jestli pole způsobí, že CharSet 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í HRESULT návratové hodnoty, přímo přeloženy nebo zda HRESULT jsou návratové hodnoty automaticky převedeny na výjimky.

SetLastError

Určuje, jestli volaný nastaví chybu (SetLastError ve Windows nebo errno na jiných platformách) před návratem z přiřazené metody.

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()

Získá aktuální Type instanci.

(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)

Platí pro

Viz také