Identificazione delle funzioni nelle DLL
L'identità di una funzione di DLL è formata dai seguenti elementi:
Nome o numero ordinale della funzione
Nome del file di DLL in cui si trova l'implementazione
Se ad esempio si specifica la funzione MessageBox in User32.dll, si identificherà la funzione (MessageBox) e la relativa posizione (User32.dll, User32 o user32). L'interfaccia per la programmazione delle applicazioni di Microsoft Windows (API Win32) può contenere due versioni di ciascuna funzione che gestisce caratteri e stringhe: una versione ANSI con caratteri a byte singolo e una versione Unicode con caratteri a byte doppio. Se omesso, il set di caratteri predefinito, rappresentato dal campo CharSet, è ANSI. Alcune funzioni possono avere più di due versioni.
MessageBoxA è il punto di ingresso ANSI per la funzione MessageBox, MessageBoxW è la versione Unicode. Per ottenere un elenco dei nomi di funzioni per una specifica DLL, ad esempio user32.dll, è possibile eseguire una vasta gamma di strumenti della riga di comando. Per ottenere nomi di funzioni, ad esempio, si può utilizzare dumpbin /exports user32.dll o link /dump /exports user32.dll.
È possibile rinominare una funzione non gestita a proprio piacimento all'interno del proprio codice, purché si associ il nuovo nome al punto di ingresso originale nella DLL. Per istruzioni sulla ridenominazione di una funzione di DLL non gestita nel codice sorgente gestito, vedere Specifica di un punto di ingresso.
Platform invoke permette di controllare una grossa parte del sistema operativo tramite la chiamata delle funzioni della API Win32 e di altre DLL. Oltre alla API Win32, platform invoke consente di accedere a numerose altre API e DLL.
Nella tabella che segue vengono descritte diverse DLL comunemente utilizzate contenute nella API Win32.
DLL |
Descrizione del contenuto |
---|---|
GDI32.dll |
Funzioni dell'interfaccia di gestione periferiche grafiche (GDI, Graphics Device Interface) per gli output di periferica, quali quelli per la gestione del disegno e dei caratteri. |
Kernel32.dll |
Funzioni di basso livello del sistema operativo per la gestione della memoria e delle risorse. |
User32.dll |
Funzioni Windows per la gestione della messaggistica, dei timer, dei menu e delle comunicazioni. |
Per la documentazione completa sulla API Win32, vedere Platform SDK. Per esempi della costruzione di dichiarazioni basate su .NET da utilizzare con platform invoke, vedere Marshalling dei dati con chiamata al sistema operativo.
Vedere anche
Concetti
Utilizzo di funzioni di DLL non gestite
Specifica di un punto di ingresso
Creazione di una classe che contenga le funzioni di DLL
Creazione di prototipi nel codice gestito