DllImportAttribute Třída

Definice

Označuje, že atributovaná metoda je vystavena 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 na metody.

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 u definic metod jazyka C#; kompilátor Visual Basic však generuje tento atribut při použití příkazu Declare. U komplexních definic metod, které zahrnují BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError nebo ThrowOnUnmappableChar polí, použijete tento atribut přímo na definice metody Visual Basic. Místo toho zvažte použití atributu LibraryImportAttribute .

Note

JScript nepodporuje tento atribut. Pro přístup k nespravovaným metodám rozhraní API z programů JScriptu můžete použít třídy obálky jazyka C# nebo Visual Basic.

Další informace o použití služby vyvolání platformy pro přístup k funkcím v nespravovaných knihovnách DLL naleznete v tématu Využívání nespravovaných funkcí knihovny DLL.

Note

Nepodporuje DllImportAttribute zařazování obecných typů.

Konstruktory

Name Description
DllImportAttribute(String)

Inicializuje novou instanci DllImportAttribute třídy s názvem knihovny DLL obsahující metodu pro import.

Pole

Name Description
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

Označuje, jak zařaizovat parametry řetězce do metody a ovládací prvky název mangling.

EntryPoint

Označuje název nebo pořadový název vstupního bodu knihovny DLL, který má být volána.

ExactSpelling

Určuje, zda pole způsobí, že CharSet modul CLR (Common Language Runtime) prohledá nespravovanou knihovnu DLL pro jiné názvy vstupních bodů, než je zadaný.

PreserveSig

Určuje, zda nespravované metody, které mají HRESULT návratové hodnoty, jsou 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 na Windows nebo errno na jiných platformách) před vrácením z atributové metody.

ThrowOnUnmappableChar

Povolí nebo zakáže vyvolání výjimky u nemapovatelného znaku Unicode, který je převeden na znak ANSI "?" .

Vlastnosti

Name Description
TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)
Value

Získá název souboru DLL, který obsahuje vstupní bod.

Metody

Name Description
Equals(Object)

Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí kód hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě určuje, zda hodnota této instance je 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á určuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
_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é