Condividi tramite


Utilizzo esplicito di PInvoke in C++ (attributo DllImport)

.NET Framework fornisce funzionalità esplicite di Platform Invoke (o PInvoke) con l'attributo Dllimport per consentire alle applicazioni gestite di chiamare funzioni non gestite in pacchetto all'interno di DLL. PInvoke esplicito è necessario per situazioni in cui le API non gestite vengono in pacchetto come DLL e il codice sorgente non è disponibile. Per chiamare le funzioni Win32, ad esempio, è necessario PInvoke. In caso contrario, usare P{Invoke implicito. Per altre informazioni, vedere Uso dell'interoperabilità C++ (PInvoke implicito).

PInvoke funziona usando DllImportAttribute. Questo attributo, che accetta il nome della DLL come primo argomento, viene inserito prima di una dichiarazione di funzione per ogni punto di ingresso DLL che verrà usato. La firma della funzione deve corrispondere al nome di una funzione esportata dalla DLL, ma alcune conversioni dei tipi possono essere eseguite in modo implicito definendo le DllImport dichiarazioni in termini di tipi gestiti.

Il risultato è un punto di ingresso gestito per ogni funzione DLL nativa che contiene il codice di transizione necessario (o le conversioni di dati semplici). Le funzioni gestite possono quindi chiamare nella DLL tramite questi punti di ingresso. Il codice inserito in un modulo come risultato di PInvoke è completamente gestito.

In questa sezione

Vedi anche

Chiamata di funzioni native da codice gestito