Я снижаюсь на стороне указателя забора по причинам, процитированным здесь и в другом месте. Однако я скажу, что независимо от того, что Вы решаете, необходимо быть последовательными и зарегистрировать его в руководстве по стилю.
руководство по стилю C++ Google запреты ссылочные аргументы неконстанты.
Я предполагаю, что вы хотите вызвать некоторые функции / методы в dll на C / C ++, не имея доступа к файлу lib для связи с ним.
Если вы знаете подписи необходимых вам функций, вы можете:
Этот предположительно является бесплатным инструментом для преобразования. Я не уверен, «бесплатно», как в «ограниченной пробной версии», или нет, информация не очень понятна. Если вы уже это протестировали, отредактируйте свой вопрос, и я удалю этот ответ.
Кажется, я не могу прокомментировать его ответ (мне нужно больше репутации?), Но вы можете попробовать использовать мой генератор оболочки .dll для создания заглушки .dll - предложил Иэн.
Вы также можете пойти динамическим путем, используя LoadLibrary () и GetProcAddress () .
(см. Вторую ссылку для примера) .
В таких случаях, как zlib или sqlite, вы можете напрямую загрузить исходный код и скомпилировать свой собственный файл lib. Фактически, я недавно сделал это для zlib, я загрузил исходный код с www.zlib.net ( прямая загрузка zlib 1.2.3 ) открыл предоставленный файл проекта Visual Studio и скомпилировал как отладочную, так и выпускную версию библиотеки. Я не пробовал sqlite, но, видя, что у них есть исходники, это не составит труда.
Если это проприетарная dll, вы можете попробовать попросить исходного разработчика или компанию предоставить файл lib или написать свой собственный dll-заглушка, предложенная iain, или пойти по динамическому маршруту, который использует RaphaelSP.
Если они экспортируются на C (без искажения имени C ++), я бы сам пошел по динамическому маршруту.
Я довольно быстро нашел этот пример: http://www.coderetard.com/2009/01/21/generate-a-lib-from-a-dll-with- visual-studio /
Если вы обратитесь к разработчику инструмента Dll to lib, они, возможно, будут готовы предоставить вам скидку.
Я уже бывал в подобных ситуациях раньше (когда мне просто нужен был дорогой инструмент. один раз), а иногда мне удавалось получить большую скидку.
Никогда не помешает попробовать.
Удачи.
Мне удалось получить библиотеку из DLL, используя подробности в http://wyw.dcweb.cn/dllfaq.htm . Ваш пробег может отличаться. Я использовал это, чтобы получить библиотеку из библиотеки DLL Python для создания некоторых расширений Python, написанных на 'C'.