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


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

Обновлен: Ноябрь 2007

Если в библиотеке 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:

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

Задачи, которые необходимо выполнить

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

См. также

Основные понятия

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