Eksportowanie funkcji języka C do użycia w plikach wykonywalnych języka C lub C++
Jeśli w bibliotece DLL napisany w C, że chcesz uzyskać dostęp z języka C lub C++ modułu językowego, należy użyć funkcji __cplusplus preprocesora makra w celu określenia języka, w którym jest kompilowany i następnie zadeklarować funkcje te powiązania C, jeśli używana z poziomu modułu języka C++.Jeśli używasz tej techniki i udostępniają pliki nagłówka dla biblioteki DLL, funkcje te można przez użytkowników C i C++, bez żadnych zmian.
Poniższy kod przedstawia używany przez C i C++ aplikacje klienckie pliku nagłówka:
// 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
Jeśli zachodzi potrzeba łączenia funkcji C z języka c++ pliku wykonywalnego i pliki nagłówkowe deklaracji funkcji nie używano powyższe techniki w pliku źródłowym języka C++, wykonaj następujące czynności, aby zapobiec kompilator dekorowania nazwy funkcji C:
extern "C" {
#include "MyCHeader.h"
}