DllImportAttribute Třída

Definice

Označuje, že metoda s atributem je vystavena nespravovanou dynamickou knihovnou (DLL) jako statickým vstupním bodem.Indicates that the attributed method is exposed by an unmanaged dynamic-link library (DLL) as a static entry point.

public ref class DllImportAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DllImportAttribute : Attribute
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 pro import funkce Win32. MessageBoxThe following code example shows how to use the DllImportAttribute attribute to import the Win32 MessageBox function. Příklad kódu pak zavolá importovanou metodu.The code example then calls the imported method.

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 lze použít pro metody.You can apply this attribute to methods.

DllImportAttribute Atribut poskytuje informace potřebné pro volání funkce exportované z nespravované knihovny DLL.The DllImportAttribute attribute provides the information needed to call a function exported from an unmanaged DLL. Minimálním požadavkem je, abyste zadali název knihovny DLL, která obsahuje vstupní bod.As a minimum requirement, you must supply the name of the DLL containing the entry point.

Použijete tento atribut přímo pro C# a C++ definice metod; Nicméně kompilátor Visual Basic emituje tento atribut při použití Declare příkazu.You apply this attribute directly to C# and C++ method definitions; however, the Visual Basic compiler emits this attribute when you use the Declare statement. Pro komplexní definice metod, které BestFitMappingzahrnují CallingConvention, ExactSpelling, PreserveSig, SetLastError, nebo ThrowOnUnmappableChar pole, použijte tento atribut přímo na Visual Basic definice metod.For complex method definitions that include BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError, or ThrowOnUnmappableChar fields, you apply this attribute directly to Visual Basic method definitions.

Poznámka: Jazyk JScript nepodporuje tento atribut.Note JScript does not support this attribute. Můžete použít C# nebo Visual Basic obálkové třídy pro přístup k nespravovaným METODÁM rozhraní API z programů v jazyce JScript.You can use C# or Visual Basic wrapper classes to access unmanaged API methods from JScript programs.

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 spotřebovávání nespravovaných funkcí DLL.For additional information about using the platform invoke service to access functions in unmanaged DLLs, see Consuming Unmanaged DLL Functions.

Poznámka

DllImportAttribute Nepodporuje zařazování generických typů.The DllImportAttribute does not support marshaling of generic types.

Konstruktory

DllImportAttribute(String)

Inicializuje novou instanci DllImportAttribute třídy s názvem knihovny DLL obsahující metodu pro import.Initializes a new instance of the DllImportAttribute class with the name of the DLL containing the method to import.

Pole

BestFitMapping

Povolí nebo zakáže chování mapování nejlepšího přizpůsobení při převodu znaků Unicode na znaky ANSI.Enables or disables best-fit mapping behavior when converting Unicode characters to ANSI characters.

CallingConvention

Označuje konvenci volání vstupního bodu.Indicates the calling convention of an entry point.

CharSet

Označuje, jak zařadit řetězcové parametry do metody a ovládací prvky, které pozměněují název.Indicates how to marshal string parameters to the method and controls name mangling.

EntryPoint

Určuje název nebo pořadové místo vstupního bodu knihovny DLL, který má být volán.Indicates the name or ordinal of the DLL entry point to be called.

ExactSpelling

Určuje, zda CharSet pole způsobí, že modul CLR (Common Language Runtime) bude hledat nespravovanou knihovnu DLL pro jiné než zadané názvy vstupních bodů.Controls whether the CharSet field causes the common language runtime to search an unmanaged DLL for entry-point names other than the one specified.

PreserveSig

Určuje, zda jsou nespravované HRESULT metody retval , které mají nebo vracejí hodnoty, HRESULT přeloženy přímo, nebo zda jsou hodnoty nebo retval návratové hodnoty automaticky převedeny na výjimky.Indicates whether unmanaged methods that have HRESULT or retval return values are directly translated or whether HRESULT or retval return values are automatically converted to exceptions.

SetLastError

Určuje, zda volaný volá SetLastError funkci rozhraní Windows API před vrácením z metody s atributy.Indicates whether the callee calls the SetLastError Windows API function before returning from the attributed method.

ThrowOnUnmappableChar

Povolí nebo zakáže vyvolání výjimky na nemapovatelný znak Unicode, který je převeden na znak ANSI "?".Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI "?" character.

Vlastnosti

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Zděděno od Attribute)
Value

Získá název souboru DLL, který obsahuje vstupní bod.Gets the name of the DLL file that contains the entry point.

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.Returns a value that indicates whether this instance is equal to a specified object.

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

Vrátí kód hash této instance.Returns the hash code for this instance.

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

Type Získá aktuální instanci.Gets the Type of the current 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.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda je tato instance rovna zadanému objektu.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

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

Vytvoří kopii aktuálního Objectseznamu.Creates a shallow copy of the current Object.

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

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(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í.Maps a set of names to a corresponding set of dispatch identifiers.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu pro objekt, který lze použít k získání informací o typu pro rozhraní.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

(Zděděno od Attribute)

Platí pro

Viz také