Dela via


Exportera C-funktioner för användning i körbara C- eller C++-språk

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"
}

Vad vill du göra?

Vad vill du veta mer om?

Se även

Exportera från en DLL