DllImportAttribute Třída

Definice

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
DllImportAttribute
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í 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, zda volaný nastaví chybu (SetLastError ve Windows nebo errno na jiných platformách) před vrácením z metody s atributem .

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)

Platí pro

Viz také