В предыдущей статье мы создавали DLL, используя Delphi, на языке Pascal. Delphi является коммерческой средой разработки, и стоит огромных денег. Потому мы сегодня поменяем среду разработки и язык программирования, а задача останется прежней.
В качестве среды разработки на C++ я выбрал бесплатно распространяемый Microsoft visual studio community 2015. Не берусь назвать причину этого аттракциона неслыханной щедрости со стороны Microsoft, это тема отдельного исследования :).
Вновь мы напишем две функции, и сделаем так, чтобы одна из них была доступна для внешнего вызова из DLL.
Инициализация нового проекта
Необходимо создать новый проект Visual C++ (меню Файл -> Создать -> Проект), используем шаблон консольного приложения.
Выбираем и жмем ОК.
В следующем диалоговом окне устанавливаем параметры приложения как показано на следующем слайде.
Думаю, тоже не возникнет вопросов с выбором параметров. Остаётся нажать кнопку — «Готово».
Создание файлов проекта DLL.
Добавим в проект два исходных файла. Один с расширением .cpp будет содержать программный код двух наших тестовых функций, а второй .def будет содержать инструкции для билдера.
Откройте «обозреватель решений» (ох уж мне эти тонкости перевода интерфейса на русский язык :) ). Если он не открыт, то найдите его через меню «Вид» или нажмите комбинацию Ctrl+Alt+L.
Нужно добавить два файла в секцию «Файлы исходного кода».
Сначала добавим файл .cpp, потом .def.
Пишем код DLL
Запрограммируем код наших функций (.cpp)
1 2 3 4 5 6 7 8 |
float power2(float x) { return x*x; } __declspec(dllexport) float power3(float x) { return power2(x) * x; } |
Для экспортируемой функции нужен префикс, разрешающий экспорт __declspec(dllexport). Функция, используемая только внутри DLL, в таком объявлении не нуждается.
Def файл будет содержать следующие инструкции:
1 2 3 |
LIBRARY "test_dll" EXPORTS power3 |
Название библиотеки и перечень экспортируемых функций (у нас только функция для получения куба числа — power3).
Компиляция и сборка библиотеки.
Все готово к компиляции и сборке. В меню «Сборка» выбираем «Собрать решение» CTRL+Shift+B. Если звезды будут вам благоприятствовать, то в папке проекта /debug вы обнаружите файл с расширением .dll.