Как написать DLL на чистом Си
Пишем DLL на чистом Си в среде Dev-CPP
Динамически подключаемые библиотеки (dynamic link libraries, DLL) это
библиотеки функций к которым могут подключаться разные процессы. DLL
используют для:
- экономии оперативной памяти при совместном их использовании несколькими процессами;
- экономии времени пребывания DLL в оперативной памяти;
- реализации возможностей многоязыкового программирования.
__declspec(dllexport) void nameFunc()
При создании DLL в Dev CPP, автоматически создаётся учебный пример HelloWorld.
Так объявляется функция в заголовочном файле:
Так пишется реализация функции в исходнике:
Подключение DLL к процессу и вызов функций
Всё закомментировал, как подключить DLL к проекту. При подключении вывожу адрес функции.
Я забыл заскринить результат выполнения этой дллки, так что давайте посмотрим следующий пример :)
Пишем свою DLL
Напишем простейший калькулятор, который будет выполнять операции сложения, вычитания, умножения и деления.
Вызываем функции:
Для вывода адреса функций и названий функций написал отдельную процедуру.
Для вывода результата написал процедуру show_result.
Результат выполнения DLL
Так как функции возвращают целое число, в результате деления результат округляется (5 / 2 = 2.5 ~ 2)
DLL Export Viewer
Разные среды программирования могут по-разному упорядочивать функции в библиотеке и использовать разные методы искажения имен, поэтому рекомендуется проверять содержимое DLL соответствующими утилитами, например tdump или DLL Export Viewer.
Как видим, среда разработки Dev CPP не исказила имена функций
Комментарии
Отправить комментарий