Sdílet prostřednictvím


Export funkcí jazyka C pro použití ve spustitelných souborech jazyka C nebo C++

Pokud máte funkce v knihovně DLL napsané v jazyce C, můžete pomocí makra preprocesoru usnadnit přístup z jazyka C i kódu jazyka C++. Makro __cplusplus preprocesoru označuje, který jazyk se kompiluje. Můžete ho použít k deklaraci funkcí s propojením jazyka C při zavolání z kódu jazyka C++. Pokud použijete tuto techniku a poskytnete soubory hlaviček pro knihovnu DLL, mohou tyto funkce používat uživatelé jazyka C a C++ beze změny.

Následující kód ukazuje hlavičkový soubor, který můžou používat klientské aplikace jazyka C i 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

Někdy může být potřeba propojit funkce jazyka C se spustitelným souborem C++, ale soubory hlaviček deklarací funkce nepoužívaly výše uvedenou techniku. Funkce můžete stále volat z jazyka C++. Ve zdrojovém souboru C++ zabalte #include direktivu, aby kompilátor nemohl dekódovat názvy funkcí jazyka C:

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

Co chcete udělat?

O čem chcete vědět víc?

Viz také

Export z knihovny DLL