Что означает `dll export / import`? - PullRequest
4 голосов
/ 29 января 2010

Я очень запутался с этой терминологией. Мне абсолютно не нравится слово export в контексте dll. Причина только потому, что я не понимаю, что это такое. Я не знаю, где искать.

Используется во многих случаях.

  • Экспорт из DLL
  • таблица экспорта из общей библиотеки
  • функции, экспортируемые dll.

Может ли кто-нибудь объяснить, пожалуйста. Что это означает? В каких других контекстах, как меняется его значение? Что такое таблица экспорта? Это как разделы .text / .bss / .data в файле PE / ELF?

Почему я никогда не слышал о dll import ? Если такая вещь существует. Когда это используется. Если это не так уж и много, простой пример также подойдет.

Пожалуйста, уточните, и я прошу всех использовать простую терминологию. Я уже запутался.

1 Ответ

4 голосов
/ 29 января 2010

Функция экспортируется из библиотеки DLL, когда она используется другими программами. таблица экспорта библиотеки DLL - это список функций, которые предоставляются и адреса, по которым они доступны. Как правило, DLL содержит некоторые функции, которые экспортируются для общего пользования, и другие функции, которые не экспортируются - они не могут быть вызваны другими библиотеками или программами, использующими обычные методы, но они могут вызываться внутри библиотеки.

Вы не часто говорите о "импорте DLL", потому что импорт DLL не является отдельным процессом. Когда вы ссылаетесь на dll, каждая функция, экспортируемая этой dll, становится доступной для вашей dll, но для ссылки на dll вам обычно нужен файл .h, который дает вам объявления, и файл .lib, который предоставляет заглушку указатели на экспортируемые функции. Эти две вещи вместе составляют dll import . Однако можно использовать функции dll без этих функций, используя функции LoadLibrary и GetProcAddress (эквивалентно POSIX dlopen и dlsym).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...