Condividi tramite


Esportare le funzioni C da usare nei file eseguibili del linguaggio C o C++

Se si dispone di funzioni in una DLL scritta in C, è possibile usare una macro del preprocessore per semplificarne l'accesso dal linguaggio C e dal codice del linguaggio C++. La __cplusplus macro del preprocessore indica il linguaggio da compilare. È possibile usarlo per dichiarare le funzioni con il collegamento C quando viene chiamato dal codice del linguaggio C++. Se si usa questa tecnica e si forniscono file di intestazione per la DLL, queste funzioni possono essere usate dagli utenti C e C++ senza alcuna modifica.

Il codice seguente mostra un file di intestazione che può essere usato dalle applicazioni client C e C++:

// MyCFuncs.h
#ifdef __cplusplus
extern "C" {  // only need to export C interface if
              // used by C++ source code
#endif

__declspec( dllimport ) void MyCFunc();
__declspec( dllimport ) void AnotherCFunc();

#ifdef __cplusplus
}
#endif

In alcuni casi potrebbe essere necessario collegare le funzioni C al file eseguibile C++, ma i file di intestazione della dichiarazione di funzione non hanno usato la tecnica precedente. È comunque possibile chiamare le funzioni da C++. Nel file di origine C++ eseguire il wrapping della #include direttiva per impedire al compilatore di decorare i nomi delle funzioni C:

extern "C" {
#include "MyCHeader.h"
}

Cosa vuoi fare?

Scegliere l'argomento su cui visualizzare maggiori informazioni

Vedi anche

Esportazione da una DLL