Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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?
Exporteren vanuit een DLL met behulp van
__declspec(dllexport)Importeren in een toepassing met behulp van
__declspec(dllimport)