Identificazione delle funzioni nelle DLLIdentifying Functions in DLLs

L'identità di una funzione di una DLL è costituita dagli elementi seguenti:The identity of a DLL function consists of the following elements:

  • Nome della funzione o numero ordinaleFunction name or ordinal

  • Nome del file DLL in cui si può trovare l'implementazioneName of the DLL file in which the implementation can be found

Ad esempio, specificando la funzione MessageBox in User32.dll, vengono identificate la funzione (MessageBox) e la sua posizione (User32.dll, User32 o user32).For example, specifying the MessageBox function in the User32.dll identifies the function (MessageBox) and its location (User32.dll, User32, or user32). L'API (Application Programming Interface) di Microsoft Windows (API Win32) può contenere due versioni di ogni funzione che gestisce i caratteri e le stringhe: una versione ANSI con caratteri a 1 byte e una versione Unicode con caratteri a 2 byte.The Microsoft Windows application programming interface (Win32 API) can contain two versions of each function that handles characters and strings: a 1-byte character ANSI version and a 2-byte character Unicode version. Se non è specificato, il set di caratteri, rappresentato dal campo CharSet, usa come impostazione predefinita la versione ANSI.When unspecified, the character set, represented by the CharSet field, defaults to ANSI. Alcune funzioni possono includere più di due versioni.Some functions can have more than two versions.

MessageBoxA è il punto di ingresso ANSI per la funzione MessageBox, mentre MessageBoxW è la versione Unicode.MessageBoxA is the ANSI entry point for the MessageBox function; MessageBoxW is the Unicode version. Per elencare i nomi di funzione per una DLL specifica, ad esempio user32.dll, è possibile eseguire numerosi strumenti della riga di comando.You can list function names for a specific DLL, such as user32.dll, by running a variety of command-line tools. Ad esempio, è possibile usare dumpbin /exports user32.dll o link /dump /exports user32.dll per ottenere i nomi di funzione.For example, you can use dumpbin /exports user32.dll or link /dump /exports user32.dll to obtain function names.

È possibile rinominare una funzione non gestita con qualsiasi nome desiderato all'interno del codice, a condizione di eseguire il mapping del nuovo nome al punto di ingresso originale nella DLL.You can rename an unmanaged function to whatever you like within your code as long as you map the new name to the original entry point in the DLL. Per istruzioni su come rinominare una funzione DLL non gestita in codice sorgente gestito, vedere Specifica di un punto di ingresso.For instructions on renaming an unmanaged DLL function in managed source code, see the Specifying an Entry Point.

Platform invoke permette di controllare una parte significativa del sistema operativo chiamando funzioni nell'API Win32 e altre DLL.Platform invoke enables you to control a significant portion of the operating system by calling functions in the Win32 API and other DLLs. Oltre all'API Win32, sono disponibili molte altre API e DLL tramite platform invoke.In addition to the Win32 API, there are numerous other APIs and DLLs available to you through platform invoke.

La tabella seguente descrive diverse DLL di uso comune nell'API Win32.The following table describes several commonly used DLLs in the Win32 API.

DLLDLL Descrizione del contenutoDescription of Contents
GDI32.dllGDI32.dll Funzioni Graphics Device Interface (GDI) per l'output del dispositivo, ad esempio per il disegno e la gestione dei tipi di carattere.Graphics Device Interface (GDI) functions for device output, such as those for drawing and font management.
Kernel32.dllKernel32.dll Funzioni del sistema operativo di basso livello per la gestione delle memoria e delle risorse.Low-level operating system functions for memory management and resource handling.
User32.dllUser32.dll Funzioni di gestione di Windows per la gestione dei messaggi, i timer, i menu e le comunicazioni.Windows management functions for message handling, timers, menus, and communications.

Per la documentazione completa dell'API Win32, vedere l'SDK della piattaforma.For complete documentation on the Win32 API, see the Platform SDK. Per alcuni esempi che mostrano come costruire dichiarazioni basate su .NET da usare con platform invoke, vedere , vedere Marshalling dei dati con platform invoke.For examples that demonstrate how to construct .NET-based declarations to be used with platform invoke, see Marshaling Data with Platform Invoke.

Vedere ancheSee Also

Utilizzo di funzioni di DLL non gestiteConsuming Unmanaged DLL Functions
Specifica di un punto di ingressoSpecifying an Entry Point
Creazione di una classe che contenga le funzioni DLLCreating a Class to Hold DLL Functions
Creazione di prototipi nel codice gestitoCreating Prototypes in Managed Code
Chiamata a una funzione di DLLCalling a DLL Function