Che cosa è un Import VB.NET?

June 28

Di Visual importazione di base è il processo di riferimento a una libreria di codice che non è localmente disponibile alla libreria .NET classe di base. La libreria di classi base fornisce una grande quantità di funzionalità, ma ci sono volte che librerie personalizzate devono essere utilizzati per la distribuzione del software. Anche se l'importazione di funzioni di libreria a un programma Visual Basic è spesso considerato un argomento avanzato, a volte può essere implementato con un minimo di due righe di codice.

Platform Invoke

Importazione di codice in un progetto di Visual Basic richiede l'utilizzo del servizio della piattaforma invoke. Il servizio piattaforma di invoke è stato inserito il framework .NET per consentire l'accesso alle librerie a collegamento dinamico personalizzato, gli oggetti COM e le API Win32 al codice gestito creato per il framework .NET. Ci sono alcune considerazioni da tenere a mente prima di utilizzare la funzione di piattaforma di invoke.

Requisiti Platform Invoke

Prima l'utilizzo della piattaforma invocano servizi, una chiamata deve essere fatto per i servizi "interoperabilità" all'interno del codice del programma. Questo codice deve essere aggiunto alla parte superiore più parte della pagina principale del programma: "using System.Runtime.InteropServices;" prima di ogni utilizzo della piattaforma invocano servizi. Questo informa il compilatore che saranno necessari servizi al di fuori del processo principale. Il file di libreria o DLL deve essere posizionato nella cartella del programma del progetto di Visual Basic in modo che possa essere chiamato durante le operazioni di debug e runtime.

Platform Invoke Dichiarazioni

Una "Dichiarazione" specifica il nome della libreria viene fatto riferimento nel progetto così come diversi attributi della biblioteca. Un "prototipo" della funzione viene chiamata in quel particolare libreria deve anche essere creata. Quanto segue è un esempio di questo tipo di dichiarazione:

"[DllImport (" Mydll.dll ", CallingConvention = CallingConvention.Cdecl,

Charset = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] "dichiara che una DLL verrà importata ed elenca diversi attributi riguardanti la DLL," public static extern int myFunction (dati UInt32), "dichiara il nome dell'essere funzione di chiamato dal file DLL e dà un prototipo generale per il suo utilizzo.

considerazioni

Importazione mediante la piattaforma invoke deve essere utilizzato solo quando una funzione nativa non esiste all'interno del sistema operativo. I programmatori a volte usano la funzione di piattaforma di invoke per richiamare le funzioni API Win32 che eseguono compiti in modo a cui sono più abituati. Tuttavia, queste stesse funzioni sono spesso disponibili nella libreria di classi base con diverse convenzioni di chiamata. Importazione di una funzione di DLL in codice gestito - tutte le funzioni sono gestite NET codice - richiede anche conto di questioni come la raccolta dei rifiuti e le prestazioni del processore. garbage collection è preso automaticamente la cura di in codice gestito, ma si traduce in programmazione in più quando vengono importati. L'importazione di una DLL richiede anche un certo overhead di elaborazione che si aggiunge al trattamento aggiuntivo richiesto dalla programmazione in più.