Поделиться через


Экспорт функций C для использования в исполняемых файлах языка C или C++

Если у вас есть функции в библиотеке DLL, написанной на C, можно использовать макрос препроцессора, чтобы упростить доступ к ним из языка C и кода языка C++. Макрос __cplusplus препроцессора указывает, какой язык компилируется. Его можно использовать для объявления функций с компоновкой C при вызове из кода языка C++. При использовании такого приема и предоставлении файлов заголовков для библиотеки DLL функции можно использовать как в C, так и в C++ без изменений.

В следующем коде показан файл заголовка, который могут использовать клиентские приложения C и 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

Иногда может потребоваться связать функции C с исполняемым файлом C++, но файлы заголовков объявления функции не использовали приведенный выше метод. Вы по-прежнему можете вызывать функции из C++. В исходном файле C++ заключите директиву #include , чтобы предотвратить декорирование имен функций C компилятором:

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

Что вы хотите сделать?

Дополнительные сведения

См. также

Экспорт из библиотеки DLL