Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du har funktioner i en DLL skriven i C kan du använda ett förprocessormakro för att göra dem enkla att komma åt från både C-språk och C++-språkkod. Makrot __cplusplus före processorn anger vilket språk som kompileras. Du kan använda den för att deklarera funktionerna med C-länkning när de anropas från C++-språkkoden. Om du använder den här tekniken och tillhandahåller huvudfiler för din DLL kan dessa funktioner användas av C- och C++-användare utan ändringar.
Följande kod visar en huvudfil som både C- och C++-klientprogram kan använda:
// 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
Ibland kan du behöva länka C-funktioner till din körbara C++-fil, men funktionsdeklarationens huvudfiler har inte använt ovanstående teknik. Du kan fortfarande anropa funktionerna från C++. I C++-källfilen omsluter #include du direktivet för att förhindra att kompilatorn dekorerar C-funktionsnamnen:
extern "C" {
#include "MyCHeader.h"
}