Chiamata a una funzione di DLLCalling a DLL Function

Anche se le chiamate a funzioni di DLL non gestite sono quasi identiche alle chiamate ad altro codice gestito, esistono alcune differenze che possono rendere apparentemente poco chiaro l'uso delle funzioni di DLL.Although calling unmanaged DLL functions is nearly identical to calling other managed code, there are differences that can make DLL functions seem confusing at first. In questa sezione vengono presentati argomenti che descrivono alcuni aspetti meno comuni delle chiamate.This section introduces topics that describe some of the unusual calling-related issues.

Le strutture che vengono restituite dalle chiamate platform invoke devono essere tipi di dati contenenti la stessa rappresentazione in codice gestito e non gestito.Structures that are returned from platform invoke calls must be data types that have the same representation in managed and unmanaged code. Questi tipi sono definiti tipi copiabili da BLT perché non richiedono la conversione. Vedere Tipi copiabili e non copiabili da BLT.Such types are called blittable types because they do not require conversion (see Blittable and Non-Blittable Types). Per chiamare una funzione con una struttura non copiabile da BLT come tipo restituito, è possibile definire un tipo di helper copiabile da BLT della stessa dimensione del tipo non copiabile da BLT e convertire i dati dopo la restituzione della funzione.To call a function that has a non-blittable structure as its return type, you can define a blittable helper type of the same size as the non-blittable type and convert the data after the function returns.

Contenuto della sezioneIn This Section

Passaggio di strutturePassing Structures
Identifica le problematiche relative al passaggio di strutture di dati con un layout predefinito.Identifies the issues of passing data structures with a predefined layout.

Funzioni di callbackCallback Functions
Include informazioni di base sulle funzioni di callback.Provides basic information about callback functions.

Procedura: implementare funzioni di callbackHow to: Implement Callback Functions
Descrive come implementare funzioni di callback nel codice gestito.Describes how to implement callback functions in managed code.

Utilizzo di funzioni di DLL non gestiteConsuming Unmanaged DLL Functions
Descrive come chiamare funzioni di DLL non gestite con platform invoke.Describes how to call unmanaged DLL functions using platform invoke.

Marshalling dei dati con platform invokeMarshaling Data with Platform Invoke
Descrive come dichiarare i parametri dei metodi e passare gli argomenti alle funzioni esportate dalle librerie non gestite.Describes how to declare method parameters and pass arguments to functions exported by unmanaged libraries.