IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Manque la bibliothèque Libcurl.lib


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Par défaut Manque la bibliothèque Libcurl.lib
    Bonjour bonjour,

    Je suis actuellement en train de travailler sur la réalisation d'un programme de teste d'une DLL sous Visual Studio 2015.

    Donc une fois avoir liée par référence mon projet et ma DLL, ce qui a bien fonctionné, j'ai voulu utilisé : __declspec(dllexport).

    Donc j'ai fait dans mon .h de ma DLL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #define TiersdeConfianceAuto_API __declspec(dllexport) 
     
    //MANQUE DU CODE MAIS PAS BESOIN A MON GOUT ^^
     
    protected:
    static TiersdeConfianceAuto_API afx_msg BSTR MESSAGE_ERROR(long CODE_ERROR);
    Et dans le .cpp de ma mon projet (.exe) j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    //include le .h de ma DLL
     
    long CODE_ERROR = 1000;
    BSTR *s = new BSTR();
     
    case 4:
    {
    	cout << "############################### MESSAGE D'ERREUR ###############################" << endl;
    	cout << "Permet d'afficher le message correspondant à un code d'erreur" << endl;
     
    	*s = CTiersdeConfianceAuto::MESSAGE_ERROR(CODE_ERROR);       //LA LE PROBLÈME
     
    	cout << "Le code d'erreur : " << CODE_ERROR << " signifie : " << &s << endl;
     
    	break;
    }
    Quand je compile mon projet, ma DLL + mon .exe se complile sans erreur et Visual crée bien les .lib .exe .dll ect

    Mais quand je veux lancé mon .exe en double-cliquant dessus il me dit :

    Nom : Capture15.png
Affichages : 274
Taille : 16,1 Ko

    Et le pire c'est que sa soit dans les dossiers de ma DLL et de mon projet de teste pour la DLL il y a bien "libcurl.dll" avec dans les paramètres le chemin pour y accédé donc je comprend pas.

    Et si je commente la ligne ou il y a dans le code plus haut "//LA LE PROBLÈME" et que je recompile, mon .exe se lance bien et demande rien par rapport a "libcurl.dll".

    Donc si quelqu'un à une idée ou la solution se serai COOL

    MERCI D'AVANCE

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 521
    Par défaut
    Désolé si je viens après la bataille.

    Votre manière de faire avec les Dll est pour le moins peu orthodoxe.

    Votre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #define TiersdeConfianceAuto_API __declspec(dllexport)
    est un peu beaucoup simpliste.

    Ca devrait être un truc plus proche de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #ifdef TiersdeConfianceAutoDLL_EXPORTS
    #define TiersdeConfianceAuto_API __declspec(dllexport)
    #else
    #define TiersdeConfianceAuto_API __declspec(dllimport)
    #endif
    Et la constante de compilation "TiersdeConfianceAutoDLL_EXPORTS" défini dans le projet de génération de la Dll et non défini dans tous les projets utilisateur de cette Dll.

    static TiersdeConfianceAuto_API afx_msg BSTR MESSAGE_ERROR(long CODE_ERROR);
    Le afx_msg, AFX c'est le nom original/ de code des MFC. Il faut donc que les projets utilisateur de cette Dll soit des projets MFC, si vous ne voulez pas galérer comme un damné.

    Et le pire c'est que sa soit dans les dossiers de ma DLL et de mon projet de teste pour la DLL il y a bien "libcurl.dll"
    Et ?
    La recherche des Dll par l'OS tient plus de la magie la plus noir que de la logique socratique :
    https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

    Pour en avoir le cœur net, utilisez un outil comme ProgMon (https://technet.microsoft.com/en-us/...rnals/bb896645) pour voir où le chargeur de l'OS cherche les Dll.

    avec dans les paramètres le chemin pour y accédé donc je comprend pas.
    Heu, de quels paramètres parlez-vous ???

    ... mon .exe se lance bien et demande rien par rapport a "libcurl.dll".
    Cela ne fait que confirmer que c'est votre Dll qui à besoin de "libcurl.dll" et pas votre programme.
    En utilisant dependencywalke http://www.dependencywalker.com/ vous auriez eu cette information de manière bien plus simple, et l'outil donnera bien plus d'informations utiles.

    Donc si quelqu'un à une idée ou la solution se serai COOL
    - Vérifiez votre utilisation de "__declspec" chelou.
    - Faites une application MFC
    - Mettez la Dll "libcurl.dll" au bon endroit.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Librairie snmp_pp.lib builder
    Par kalou26 dans le forum C++Builder
    Réponses: 2
    Dernier message: 09/02/2007, 08h32
  2. Il me manque des librairies, mais lesquelles ?
    Par ratakses dans le forum Linux
    Réponses: 2
    Dernier message: 07/09/2006, 11h53
  3. [Librairies] zip.lib.php Fatal error: Allowed memory size of 8388608 bytes exhausted
    Par manaboko dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 22/05/2006, 10h42
  4. Librairie msvcprtd.lib non trouvée
    Par Rupella dans le forum MFC
    Réponses: 2
    Dernier message: 16/02/2006, 14h19
  5. [JpGraph] il me manque la librairie GD
    Par micknic dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 26/12/2005, 20h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo