2009-12-01 2 views
0

Я пытаюсь построить DLL, и ему нужно ссылаться на библиотеку, а именно libeay32.dll из пакета openssl. Кажется, я не могу добавить ссылку в качестве ссылки в разделе «Страницы свойств->« Общие свойства »>« Добавить новую ссылку », потому что она дает ошибку« Невозможно добавить ссылку на файл «C: \ OpenSSL \ libeay32.dll», потому что это не a. NET или зарегистрированный элемент управления Active X. Я могу скомпилировать и запустить его, когда я использую Linker-> Input-> Additional Dependencies и устанавливаю статический lib 'C: \ OpenSSL \ lib \ libeay32.lib'. Но конечным результатом является I необходимо также включить libeay32.dll. Что я делаю неправильно?Не могу добавить статический lib

+0

Я предлагаю, чтобы пометить его с помощью SSL, OpenSSL теги – 2009-12-01 03:19:13

ответ

4

Вы все делаете правильно. «Добавить ссылку» предназначена для сборщиков .NET (и COM-компонентов, используемых через COM-интерфейс .NET COM). Второй подход что вы пробовали, это правильный способ сделать это для собственного кода, но libeay32.lib не является статической библиотекой, это библиотека экспорта для DLL.

1

Как заметил Павел, libeay32.lib - это не полная библиотека, с которой ваше приложение может быть статически связано и запущено. Он используется для разрешения ссылки на динамическую библиотеку lib, dll. Итак, вашему приложению по-прежнему нужна DLL для запуска.

http://msdn.microsoft.com/en-us/library/f0z8kac4.aspx

+0

ИТАК, что я имел в виду, чтобы сделать, это построить DLL, которая делает некоторые шифрования, используя функции из пакета OpenSSL. Но я хочу сделать сборку, чтобы DLL могла включать (или объединить?) Требуемый libeay32.dll из openssl, поэтому клиенту не нужно беспокоиться о том, что libeay32.dll уже есть. Не существует ли какой-либо простой способ сделать это или мне действительно нужно перестроить источник для OpenSSL с помощью моего собственного проекта? – 2009-12-01 05:48:23

+0

Вы можете освободить libeay32.dll вместе со своей dll. Если вы предпочитаете распространять DLL как один файл, вам нужно использовать статическую версию lib opensll. Если он еще не предоставлен, вам необходимо его перестроить. Свойство «Тип конфигурации» проекта определяет, следует ли создавать динамическую или статическую библиотеку. – Raymond

 Смежные вопросы

  • Нет связанных вопросов^_^