Delen via


C-functies exporteren voor gebruik in uitvoerbare bestanden in C- of C++-taal

Als u functies hebt in een DLL die is geschreven in C, kunt u een preprocessormacro gebruiken om ze gemakkelijk toegankelijk te maken vanuit zowel de C-taal als de C++-taalcode. De __cplusplus preprocessormacro geeft aan welke taal wordt gecompileerd. U kunt deze gebruiken om de functies met C-koppeling te declareren wanneer deze worden aangeroepen vanuit C++-taalcode. Als u deze techniek gebruikt en headerbestanden voor uw DLL levert, kunnen deze functies zonder wijzigingen worden gebruikt door C- en C++-gebruikers.

De volgende code toont een headerbestand dat zowel C- als C++-clienttoepassingen kunnen gebruiken:

// 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

Soms moet u mogelijk C-functies koppelen aan het uitvoerbare C++-bestand, maar de headerbestanden van de functiedeclaratie hebben de bovenstaande techniek niet gebruikt. U kunt de functies nog steeds aanroepen vanuit C++. In het C++-bronbestand verpakt u de #include instructie om te voorkomen dat de compiler de C-functienamen decoreert:

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

Wat u wilt doen?

Waar wil je meer over weten?

Zie ook

Exporteren vanuit een DLL