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

Co chcesz zrobić?

O czym chcesz się dowiedzieć więcej?

Zobacz też

Koncepcje

Eksportowanie z biblioteki DLL