Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il wrapping di una funzione DLL usata di frequente in una classe gestita è un approccio efficace per incapsulare la funzionalità della piattaforma. Anche se non è obbligatorio farlo in ogni caso, fornire un wrapper di classe è utile perché la definizione di funzioni DLL può essere complessa e soggetta a errori. Se si esegue la programmazione in Visual Basic o C#, è necessario dichiarare funzioni DLL all'interno di una classe o di un modulo di Visual Basic.
All'interno di una classe si definisce un metodo statico per ogni funzione DLL che si vuole chiamare. La definizione può includere informazioni aggiuntive, ad esempio il set di caratteri o la convenzione di chiamata utilizzata per passare argomenti del metodo; omettendo queste informazioni, si selezionano le impostazioni predefinite. Per un elenco completo delle opzioni di dichiarazione e delle relative impostazioni predefinite, vedere Creazione di prototipi in Codice gestito.
Una volta eseguito il wrapping, è possibile chiamare i metodi sulla classe come si chiamano i metodi statici su qualunque altra classe. Platform invoke gestisce automaticamente la funzione esportata sottostante.
Quando si progetta una classe gestita per platform invoke, prendere in considerazione le relazioni tra classi e funzioni DLL. Ad esempio, puoi:
Dichiarare funzioni DLL all'interno di una classe esistente.
Creare una singola classe per ogni funzione DLL, mantenendo le funzioni isolate e facili da trovare.
Creare una classe per un set di funzioni DLL correlate per formare raggruppamenti logici e ridurre il sovraccarico.
È possibile denominare la classe e i relativi metodi come si desidera. Per esempi che illustrano come costruire dichiarazioni basate su .NET da usare con Platform Invoke, vedere Marshalling dei dati con Platform Invoke.