2009-05-25 3 views
7

Мое приложение зависит от библиотеки OpenSSL (через модули Qt сетей, вы не можете скомпилировать его в Qt статически, из-за юридических вопросов)Установка и регистрация win32 библиотеки OpenSSL

Там в этот проект - Win32 OpenSSL

Кажется, все, что мне нужно, это скопировать две библиотеки в System32 и зарегистрировать их.

copy ssleay32.dll %WINDIR%\System32\ssleay32.dll 
copy libeay32.dll %WINDIR%\System32\libeay32.dll 
regsvr32.exe /s %WINDIR%\System32\ssleay32.dll 
regsvr32.exe /s %WINDIR%\System32\libeay32.dll 

И действительно, что работал на пару машин в офисе (мое приложение начал работать правильно с HTTPS после операции). У них много вещей, установленных на них, поэтому это может помешать.

Все еще не работает на чистой виртуальной машине под VMWare.

Хотя, когда я устанавливаю под него Tortoise SVN (который поставляется с OpenSSL), все становится хорошо. Каков правильный способ установки openssl в систему?

примечание: Сетевой модуль Qt имеет собственный список сертификатов.

+0

Другие пакеты также используют библиотеки OpenSSL, поэтому вы можете захотеть разместить вашу конкретную версию локально с помощью двоичных файлов приложения. Вы получите некоторые странные ошибки, если версии не совпадают. –

ответ

2

Может быть, существует другая зависимость, что эти две библиотек DLL имеет, что SVN установил для вас ...

Попытки использования зависит, какие библиотеки DLL в библиотеках DLL OpenSSL использовать, и убедитесь, что те, которые установлены на вашей чистую VMware.

+0

Действительно, вы были правы - ssleay.dll зависит от файла msvcr90.dll, который представляет собой некоторую библиотеку времени выполнения Microsoft, которая является частью распространяемого MS. – Maleev

+0

Проблема в том, что я не знаю, как правильно установить эту библиотеку. Попытка зарегистрировать его с помощью regsvr32.exe вызывает ошибку (R6034 - smth about manifest). Но это еще один вопрос ... – Maleev

+0

Вы можете скачать из MS распространяемый пакет для VC9 ... –

0

Возможно, вы, вероятно, зависите от libsasl.dll, который поставляется с черепахой-svn!

3

Просто поместите DLL в папку установки вашего приложения. Нельзя регистрироваться (и вы не можете использовать regsvr32 в любом случае, поскольку OpenSSL не реализует серверы ActiveX/COM, что и означает regsvr32).

0

Вы можете использовать Dependency Walker, чтобы проверить, какая зависимость у вашего приложения и какие из них он не смог решить.

http://www.dependencywalker.com/

Просто перетащите приложение Dependency Walker и на левой панели вы увидите все библиотеки DLL, которые она должна работать.