Inclus OpenSSL comme une bibliothèque statique, mais il est toujours à la recherche d'une DLL?
J'ai installé OpenSSL 1.0.0 sur Windows en utilisant le programme d'installation disponible sur:
http://www.slproweb.com/products/Win32OpenSSL.html
J'ai ajouté de l' .lib les fichiers de mon projet (c'est Visual Studio, ajouté aux Paramètres du Projet->Linker->Input), et il compile et fonctionne très bien. Mais quand je l'ai supprimer de la bibliothèque OpenSSL fichiers dans Windows\system32, il se plaint de ce que
"Debugger:: An unhandled non-continuable STATUS_DLL_NOT_FOUND exception was thrown during process load"
Aucune idée de pourquoi c'est toujours à la recherche de la DLL, même lorsqu'il est compilé avec les bibliothèques statiques? Je suis pas référence à la Dll n'importe où dans le projet. Les bibliothèques statiques j'ai inclus sont libeay32.lib et ssleay32.lib.
Grâce,
-M
OriginalL'auteur mindthief | 2010-11-02
Vous devez vous connecter pour publier un commentaire.
Il est à la recherche pour les Dll, car le code est chargé dynamiquement à l'exécution. Le code dans les bibliothèques statiques est juste un ensemble de fonctions stub qui appel de la DLL -- comparer les tailles de la .lib et .dll fichiers, et je parie que vous verrez que les Dll sont beaucoup plus grandes, puisque c'est là que le gros de l'effectif code de cryptage des mensonges.
Donc, comme vous l'avez appris, vous ne devez pas supprimer la Dll. Dans le but de distribuer votre programme correctement, vous aurez également besoin de distribuer ces Dll dans l'ordre pour qu'il fonctionne correctement. Cependant, gardez à l'esprit qu'il y a des questions juridiques à cela, car il y a NOUS, les restrictions à l'exportation sur certains code de cryptage. Donc être très prudent dans la redistribution de ces Dll -- soyez certain de ce que vous faites est légal.
Vous pouvez le faire, mais vous aurez à compiler openssl comme une bibliothèque statique
OriginalL'auteur Adam Rosenfield
utilisation libeay32MT.fichier lib qui ont près de 19 mo taille de votre bibliothèque. parce que c'est une bibliothèque statique, mais libeay32.lib est une bibliothèque pour l'utilisation de la dll.
libeay32MT.lib
mais mon résultat est de 1,4 MO de fichiers volumineux.OriginalL'auteur ms vt
Vous pouvez obtenir les bibliothèques statiques ici:
http://www.ie7pro.com/openssl/openssl-0.9.8g_static_win32.zip
(voir http://www.ie7pro.com/openssl.html).
Ils sont construits avec des statiques des bibliothèques d'exécution, donc si vous êtes à l'aide de VC++, vous devrez peut-être aller à:
Propriétés de Configuration--> C/C++--> Génération de Code--> Bibliothèque d'Exécution
et sélectionnez /MT au lieu de /MD pour éviter le couplage des conflits (ou alternativement, utilisez /NODEFAULTLIB:LIBCMT, etc. dans l'éditeur de liens--> en Ligne de Commande--> Options Supplémentaires).
OriginalL'auteur Arash