DllImportAttribute Classe

Definizione

Indica che il metodo con attributi viene esposto da una libreria a collegamento dinamico (DLL) non gestita come punto di ingresso statico.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
Ereditarietà
DllImportAttribute
Attributi

Esempi

Nell'esempio di codice seguente viene illustrato come utilizzare DllImportAttribute l'attributo per importare la MessageBox funzione Win32.The following code example shows how to use the DllImportAttribute attribute to import the Win32 MessageBox function. Nell'esempio di codice viene quindi chiamato il metodo importato.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

Commenti

È possibile applicare questo attributo ai metodi.You can apply this attribute to methods.

L' DllImportAttribute attributo fornisce le informazioni necessarie per chiamare una funzione esportata da una dll non gestita.The DllImportAttribute attribute provides the information needed to call a function exported from an unmanaged DLL. Come requisito minimo, è necessario specificare il nome della DLL che contiene il punto di ingresso.As a minimum requirement, you must supply the name of the DLL containing the entry point.

Questo attributo viene applicato direttamente alle C# definizioni C++ dei metodi e. Tuttavia, il compilatore Visual Basic emette questo attributo quando si usa l' Declare istruzione.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. Per le definizioni di metodo complesse BestFitMappingche CallingConventionincludono ExactSpelling PreserveSig SetLastErrori campi,, ThrowOnUnmappableChar ,, o, l'attributo viene applicato direttamente a Visual Basic definizioni di metodo.For complex method definitions that include BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError, or ThrowOnUnmappableChar fields, you apply this attribute directly to Visual Basic method definitions.

Nota JScript non supporta questo attributo.Note JScript does not support this attribute. È possibile utilizzare C# o Visual Basic classi wrapper per accedere ai metodi API non gestiti dai programmi JScript.You can use C# or Visual Basic wrapper classes to access unmanaged API methods from JScript programs.

Per ulteriori informazioni sull'utilizzo del servizio platform invoke per accedere alle funzioni nelle dll non gestite, vedere utilizzo di funzioni dll non gestite.For additional information about using the platform invoke service to access functions in unmanaged DLLs, see Consuming Unmanaged DLL Functions.

Nota

Non DllImportAttribute supporta il marshalling di tipi generici.The DllImportAttribute does not support marshaling of generic types.

Costruttori

DllImportAttribute(String)

Inizializza una nuova istanza della classe DllImportAttribute con il nome della DLL che contiene il metodo da importare.Initializes a new instance of the DllImportAttribute class with the name of the DLL containing the method to import.

Campi

BestFitMapping

Abilita o disabilita il comportamento di mapping più appropriato per la conversione di caratteri Unicode in caratteri ANSI.Enables or disables best-fit mapping behavior when converting Unicode characters to ANSI characters.

CallingConvention

Indica la convenzione di chiamata di un punto di ingresso.Indicates the calling convention of an entry point.

CharSet

Indica come eseguire il marshalling dei parametri di stringa nel metodo e controlla l'alterazione dei nomi.Indicates how to marshal string parameters to the method and controls name mangling.

EntryPoint

Indica il nome o l'ordinale del punto di ingresso DLL da chiamare.Indicates the name or ordinal of the DLL entry point to be called.

ExactSpelling

Controlla se il campo CharSet fa in modo che Common Language Runtime cerchi in una DLL non gestita i nomi dei punti di ingresso diversi da quello specificato.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

Indica se i metodi non gestiti con valore restituito HRESULT o retval vengono convertiti direttamente o se il valore restituito HRESULT o retval viene convertito automaticamente in eccezioni.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

Indica se il destinatario della chiamata chiama la funzione API Windows SetLastError prima della restituzione di un risultato dal metodo con attributi.Indicates whether the callee calls the SetLastError Windows API function before returning from the attributed method.

ThrowOnUnmappableChar

Abilita o disabilita la generazione di un'eccezione su un carattere Unicode di cui non è possibile eseguire il mapping convertito in un carattere ANSI "?".Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI "?" character.

Proprietà

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Ereditato da Attribute)
Value

Ottiene il nome del file DLL che contiene il punto di ingresso.Gets the name of the DLL file that contains the entry point.

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.Returns a value that indicates whether this instance is equal to a specified object.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.Returns the hash code for this instance.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.Provides access to properties and methods exposed by an object.

(Ereditato da Attribute)

Si applica a

Vedi anche