Импорт DLL с использованием файла определения модуля (.def) - PullRequest
0 голосов
/ 23 марта 2020

Я хочу создать и отправить библиотеку windows C. Я читал, что есть два способа сделать это: один с использованием __declspe c (dllexport) и __declspe c (dllimport) в заголовочных файлах, а другой - с помощью файла определения модуля ( ссылка ). Я не хочу изменять заголовочные файлы, поэтому я выбрал второй и создал библиотеку, которая, как я подтвердил, экспортирует необходимые символы.

Теперь, когда я отправляю его:

  1. нужно ли заголовочным файлам по-прежнему иметь __declspe c (dllimport) перед каждой экспортируемой функцией, чтобы клиенты могли ее использовать?
  2. мне нужно отправить файл определения модуля вместе с dll, или файла .lib будет достаточно?

Я, конечно, проверил как на игрушечном примере, так и на своем. Я думаю, что ответы на оба моих вопроса - «Нет», но я хотел бы подтвердить это с опытным разработчиком, прежде чем что-либо отправлять.

Я нашел эту статью, но она плохо написана и я не вижу в этом смысла.

1 Ответ

2 голосов
/ 23 марта 2020

Вы можете просто предоставить своим клиентам файл .h, библиотеку импорта .lib и сам файл .dll. Им не нужен файл .def.

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

...