Condividi tramite


DllImportAttribute Classe

Definizione

Indica che il metodo con attributi viene esposto da una libreria di collegamento dinamico (DLL) non gestita come un punto di ingresso statico.

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
Ereditarietà
DllImportAttribute
Attributi

Esempio

L'esempio di codice seguente illustra come usare l'attributo DllImportAttribute per importare la funzione Win32 MessageBox . Nell'esempio di codice viene quindi chiamato il metodo importato.

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.

L'attributo DllImportAttribute fornisce le informazioni necessarie per chiamare una funzione esportata da una DLL non gestita. Come requisito minimo, è necessario specificare il nome della DLL contenente il punto di ingresso.

Questo attributo viene applicato direttamente alle definizioni dei metodi C# e C++; Tuttavia, il compilatore Visual Basic genera questo attributo quando si usa l'istruzione Declare . Per le definizioni di metodo complesse che includono BestFitMappingi campi , CallingConventionExactSpelling, PreserveSig, SetLastError, o ThrowOnUnmappableChar , si applica questo attributo direttamente alle definizioni dei metodi di Visual Basic.

Nota JScript non supporta questo attributo. È possibile usare classi wrapper C# o Visual Basic per accedere ai metodi API non gestiti dai programmi JScript.

Per altre informazioni sull'uso del servizio Platform Invoke per accedere alle funzioni nelle DLL non gestite, vedere Utilizzo di funzioni DLL non gestite.

Nota

non DllImportAttribute supporta il marshalling di tipi generici.

Costruttori

DllImportAttribute(String)

Inizializza una nuova istanza della classe DllImportAttribute con il nome della DLL che contiene il metodo da importare.

Campi

BestFitMapping

Abilita o disabilita il comportamento di mapping più appropriato per la conversione di caratteri Unicode in caratteri ANSI.

CallingConvention

Indica la convenzione di chiamata di un punto di ingresso.

CharSet

Indica come eseguire il marshalling dei parametri di stringa nel metodo e controlla l'alterazione dei nomi.

EntryPoint

Indica il nome o l'ordinale del punto di ingresso DLL da chiamare.

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.

PreserveSig

Indica se i metodi non gestiti con HRESULT valori restituiti vengono convertiti direttamente o se HRESULT i valori restituiti vengono convertiti automaticamente in eccezioni.

SetLastError

Indica se il chiamato imposta un errore (SetLastError in Windows o errno in altre piattaforme) prima di restituire dal metodo con attributi.

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 "?".

Proprietà

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)
Value

Ottiene il nome del file DLL che contiene il punto di ingresso.

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

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

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

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

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

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

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 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.

(Ereditato da Attribute)

Si applica a

Vedi anche