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

PostgreSQL Discussion :

Application utilisant libpq (problème de dll)


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut Application utilisant libpq (problème de dll)
    Bonjour,

    J'ai terminée mon application utilisant libpq. Je souhaiterais donc créer un installer pour pouvoir la distribuer.

    J'utilise Inno Setup. J'ai importé les librairies nécessaires à mon application dont libpq.dll.

    Lorsque je lance mon application nouvellement installée, j'ai ce message d'erreur : "L'application n'a pas réussi à s'initialiser correctement..."

    J'avais installé postgresql sur mon poste de développement, avant tout marchait, mais depuis sa désinstallation, j'ai le même message d'erreur.

    Mon problème vient donc de là : que dois-je inclure comme fichier en plus de libpq.dll pour que mon application fonctionne en "stand-alone" ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    D'après ce lien http://www.postgresql.org/docs/8.3/i...n32-libpq.html, il faut seulement la dll libpq.dll (au pire la placer dans Windows/System32).

    C'est bien ce que j'ai fait...

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Points : 262
    Points
    262
    Par défaut
    Bonjour (des hauts et des bas.....)
    To use the library, you must add the libpqdll.lib file to your project. (In Visual C++, just right-click on the project and choose to add it.)
    Pour utiliser la librairie vous devez ajouter La libpqdll.lib ....
    Lecture trop rapide de votre lien ....
    Cordialement



  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    Et bien non,
    interfaces\libpq\Release\libpqdll.lib

    Import library to link your programs to libpq.dll
    Sauf erreur de ma part, elle sert au linkage lors de la compilation. Une fois l'exe produit, il n'y en a plus besoin.

    J'essaye tout de même de l'inclure, mais elle n'est pas présente sur mon disque dur

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Points : 262
    Points
    262
    Par défaut
    Vous avez mal interpreté ma remarque précédente je parle bien d'insertion lib dans votre projet a la compi..
    Les directives generées au linkage de la version binaire originale
    ne correspondent pas forcement aux directives generées par votre instruction d'insertion.
    Il faut essayer de copier les dll du rep \lib de PG(binaire) dans system32 ou un
    rep qui (path) global en auto ) sur votre applicatif.
    J'ai fait des tests avec libpq et lipqxx cela fonctionne parfaitement.
    avec G++ avec VC++ avec Open Watcom,intel C++ Compiler 10.1 , et borland (Serveur 2008)
    Moi j'ai copié toutes les dll dans le system32 de Bill. pour ne pas m'em... (je ne suis pas certain que c'est la solution a votre problème).je pense plutot a une directive mal générée par le make de votre projet ?? ou un fichier manquant dans votre reinstall ???
    Normalement ça fonctionne parfaitement.
    On attend avec impatience un telechargement en trial de votre application avec la bonne Bill.dll..

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    Je suis reparti sur un programme utilisant seulement la libpq.

    J'utilise Dev-Cpp, j'ai installé pgsql en binaire (postgresql-8.3.1-1-binaries-no-installer.zip) dans C:\Dev-Cpp\pgsql

    J'ai copier toutes les dll de C:\Dev-Cpp\pgsql\lib dans ....System32

    J'ai créé un projet, ajouté les includes (-I c:\dev-cpp\pgsql\include) et link (-L c:\dev-cpp\pgsql\lib -lpq)

    Tout compile bien. J'exécute et j'obtiens mon message d'erreur "L'application n'a pas réussi à s'initialiser correctement (0xc0150002). Cliquez sur OK pour arrêter l'application.

    Que me manque t-il ?

    Info : devcpp-4.9.9.2 inclue Mingw/GCC 3.4.2

    Le plus surprenant, c'est que si j'installe un serveur postgre, ça marche...

    Edit : J'ai tenté en compilant en dehors de dev-cpp, en copiant le fichier source dans le répertoire bin et même erreur...

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Points : 262
    Points
    262
    Par défaut
    Le plus surprenant, c'est que si j'installe un serveur postgre, ça marche...
    Postgres passif ou actif avec l'initdb base ?
    Vous avez lancé le VCVARS32.bat je pense que c'est pour formater
    les directive @ correctement.
    J'ai fait une erreur pour les DLL c'est les DLL du bin de PG que j'ai copié dans
    SYTEM32 je crois ...J'e n'ai plus le serveur Bill en fonction pour verifier.
    (Note: je ne peux pas l'allumer là j'ai trop de serveurs branchés)..

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par bustaf Voir le message
    Postgres passif ou actif avec l'initdb base ?
    Le serveur est éteind. "avec l'initdb base" ?

    Pour VCVARS32.bat, je développe qu'avec Dev-cpp et mingw.

    Citation Envoyé par bustaf Voir le message
    J'ai fait une erreur pour les DLL c'est les DLL du bin de PG que j'ai copié dans SYTEM32 je crois ...
    J'avais copié celle de bin

    Je patauge là... je ne vois pas ce que le serveur postgre a à voir la dedans surtout si il est éteint...

  9. #9
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Points : 262
    Points
    262
    Par défaut
    Changez le nom du repertoire PG binaire installé et faites le test pour voir..

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    Idem, en recompilant aussi..

  11. #11
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Points : 262
    Points
    262
    Par défaut
    Je m'explique mal ...
    Votre appli fonctionne toujours même si vous deplacez le rep PG binaire passif a un endroit supposé inaccessibe par votre application ???

    C'est dingue !!!!
    2 solutions ou il trouve un fichier dans l'install binaire ou il utilise
    l'utilisateur sans droits administrateur. ?????????

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    Et bien si je renomme mon répertoire Dev-Cpp par _Dev-Cpp (j'ai installé toutes les librairies dans Dev-Cpp) et que je lance l'application
    - sans postgre -> plantage
    - avec -> OK
    J'ai même lancé mon application au cours de l'installation, j'ai réussi à la lancer vers le milieu de l'installation...

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    De même, je ne vois pas ce qu'il pourrait utiliser, postgre est installé par défaut dans C:\Program Files\ qui est inaccessible... A moins qu'il ne copie des choses dans system32.

  14. #14
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Points : 262
    Points
    262
    Par défaut
    J'ai regardé rapidement dans le code source.
    Il semble que La dll n'est pas un client complet elle utilise le client Postgres pour pluguer le serveur local ou distant (C'est assez complexe
    il faut que je lise plus profondementle pour confirmer ce que j'avance)
    Dans Unix on peut installer uniquement le client chez Bill nada ???
    Install serveur PG binaire complet utilisation passive = client ....
    Il faut voir ce que comprend l'install d'un client unique PG chez les pingouins pour faire le ménage dans l'install (client serveur) binaire de Bill. Vous n'etes plus a un fichier pres.....
    Anium j'arrete là le systeme Bill c'est intéressant mais j'ai trop de t.a.f...
    pour poursuivre l'echange.
    Bon courage .

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    Merci beaucoup pour votre aide.

    Je vais essayer de comparer le répertoire system32 avant et après l'installation de postgresql, je vais voir aussi si il n'y a pas une application pour fournir la liste des fichiers copié par un installer.

    Je tiens au courant sur ce post pour ceux qui aurait le même problème.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    J'ai comparé les dll de Windows avant et après l'install de postgre voila ce qui change :

    "C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\msvcr80.dll"; "C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\msvcm80.dll"; "C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\msvcp80.dll";

    Si je supprime ces dll, je tombe sur la même erreur quand postgresql est installé (ce qui est bon signe).
    Je garde ces dll pour mon logiciel (au même endroit ou dans son répertoire), mais l'erreur réapparait quand postgresql est désinstallé .

Discussions similaires

  1. [WD17] Problème de dll au lancement de l'application
    Par lololebricoleur dans le forum WinDev
    Réponses: 3
    Dernier message: 15/02/2012, 13h34
  2. Problème utilisation de pointeur avec dll
    Par Xarik dans le forum C#
    Réponses: 4
    Dernier message: 05/08/2011, 20h37
  3. problème d'application utilisant une base de données
    Par hayat2 dans le forum Bases de données
    Réponses: 12
    Dernier message: 29/09/2009, 18h10
  4. Réponses: 2
    Dernier message: 27/11/2008, 11h57
  5. Réponses: 2
    Dernier message: 19/12/2006, 15h51

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