DllImportAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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 |
SetLastError |
Indica se il chiamato imposta un errore ( |
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) |