Преобразование Windows Dll к .lib для Visual Studio C++ 2008

Я снижаюсь на стороне указателя забора по причинам, процитированным здесь и в другом месте. Однако я скажу, что независимо от того, что Вы решаете, необходимо быть последовательными и зарегистрировать его в руководстве по стилю.

руководство по стилю C++ Google запреты ссылочные аргументы неконстанты.

12
задан 13 revs, 2 users 99% 23 May 2017 в 12:16
поделиться

8 ответов

Я предполагаю, что вы хотите вызвать некоторые функции / методы в dll на C / C ++, не имея доступа к файлу lib для связи с ним.

Если вы знаете подписи необходимых вам функций, вы можете:

  • создать свою собственную версию библиотеки dll
  • создать проект dll с тем же именем, что и dll, которую вы хотите использовать
  • добавить реализации заглушки функций, которые вы хотите вызвать
  • , сигнатуры очень важны, чтобы проверить их соответствие, используйте depends.exe или dumpbin.exe.
  • затем напишите / создайте свою программу, чтобы связать ее с заглушкой dll
  • для запуска программы замените заглушку dll с настоящим
5
ответ дан 2 December 2019 в 19:55
поделиться

Этот предположительно является бесплатным инструментом для преобразования. Я не уверен, «бесплатно», как в «ограниченной пробной версии», или нет, информация не очень понятна. Если вы уже это протестировали, отредактируйте свой вопрос, и я удалю этот ответ.

0
ответ дан 2 December 2019 в 19:55
поделиться

Кажется, я не могу прокомментировать его ответ (мне нужно больше репутации?), Но вы можете попробовать использовать мой генератор оболочки .dll для создания заглушки .dll - предложил Иэн.

6
ответ дан 2 December 2019 в 19:55
поделиться

Вы также можете пойти динамическим путем, используя LoadLibrary () и GetProcAddress () .

(см. Вторую ссылку для примера) .

4
ответ дан 2 December 2019 в 19:55
поделиться

В таких случаях, как zlib или sqlite, вы можете напрямую загрузить исходный код и скомпилировать свой собственный файл lib. Фактически, я недавно сделал это для zlib, я загрузил исходный код с www.zlib.net ( прямая загрузка zlib 1.2.3 ) открыл предоставленный файл проекта Visual Studio и скомпилировал как отладочную, так и выпускную версию библиотеки. Я не пробовал sqlite, но, видя, что у них есть исходники, это не составит труда.

Если это проприетарная dll, вы можете попробовать попросить исходного разработчика или компанию предоставить файл lib или написать свой собственный dll-заглушка, предложенная iain, или пойти по динамическому маршруту, который использует RaphaelSP.

Если они экспортируются на C (без искажения имени C ++), я бы сам пошел по динамическому маршруту.

1
ответ дан 2 December 2019 в 19:55
поделиться

Я довольно быстро нашел этот пример: http://www.coderetard.com/2009/01/21/generate-a-lib-from-a-dll-with- visual-studio /

1
ответ дан 2 December 2019 в 19:55
поделиться

Если вы обратитесь к разработчику инструмента Dll to lib, они, возможно, будут готовы предоставить вам скидку.

Я уже бывал в подобных ситуациях раньше (когда мне просто нужен был дорогой инструмент. один раз), а иногда мне удавалось получить большую скидку.

Никогда не помешает попробовать.

Удачи.

0
ответ дан 2 December 2019 в 19:55
поделиться

Мне удалось получить библиотеку из DLL, используя подробности в http://wyw.dcweb.cn/dllfaq.htm . Ваш пробег может отличаться. Я использовал это, чтобы получить библиотеку из библиотеки DLL Python для создания некоторых расширений Python, написанных на 'C'.

0
ответ дан 2 December 2019 в 19:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: