Creazione di una classe che contenga le funzioni di DLL
Aggiornamento: novembre 2007
Il wrapping di una funzione di DLL frequentemente utilizzata in una classe gestita è un modo efficace per incapsulare la funzionalità della piattaforma. Sebbene non sia obbligatorio farlo in tutti i casi, è preferibile fornire un wrapper di classe, perché la definizione delle funzioni di DLL è un'attività complessa e soggetta a errori. In caso di programmazione in C# o in Visual Basic, è necessario dichiarare le funzioni di DLL in una classe o in un modulo Visual Basic.
All'interno di una classe, si definisce un metodo statico per ciascuna funzione di DLL che si desidera chiamare. La definizione può includere informazioni aggiuntive, come il set di caratteri o la convenzione di chiamata utilizzata per passare gli argomenti del metodo. Se si omettono queste informazioni, verranno utilizzate le impostazioni predefinite. Per un elenco completo delle opzioni di dichiarazione e delle relative impostazioni predefinite, vedere Creazione di prototipi nel codice gestito.
Una volta effettuato il wrapping, sarà possibile chiamare i metodi della funzione così come si chiamano i metodi di qualsiasi altra funzione statica. Con il richiamo piattaforma, la funzione esportata sottostante viene gestita automaticamente.
Quando si progetta una classe gestita che supporti il richiamo piattaforma, sarà necessario tenere in considerazione le relazioni tra le classi e le funzioni di DLL. È ad esempio possibile:
Dichiarare funzioni di DLL in una classe esistente.
Creare una classe distinta per ciascuna funzione di DLL, mantenendo le funzioni isolate e facilmente rintracciabili.
Creare una sola classe per un insieme di funzioni di DLL correlate, al fine di formare raggruppamenti logici e ridurre l'overhead.
È possibile assegnare alla classe e ai relativi metodi i nomi desiderati. Per esempi della costruzione di dichiarazioni basate su .NET da utilizzare con il richiamo piattaforma, vedere Marshalling dei dati con chiamata al sistema operativo.
Vedere anche
Concetti
Utilizzo di funzioni di DLL non gestite
Identificazione delle funzioni nelle DLL
Creazione di prototipi nel codice gestito