Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/06/2008, 16h57   #1
Membre du Club
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 50
Points : 50
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" ?
Anium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 17h39   #2
Membre du Club
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 50
Points : 50
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...
Anium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 18h11   #3
Inactif
 
Inscription : novembre 2004
Messages : 247
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 247
Points : 217
Points : 217
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


bustaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 19h52   #4
Membre du Club
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 50
Points : 50
Et bien non,
Citation:
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
Anium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 01h40   #5
Inactif
 
Inscription : novembre 2004
Messages : 247
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 247
Points : 217
Points : 217
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..
bustaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 10h19   #6
Membre du Club
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 50
Points : 50
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...
Anium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 11h51   #7
Inactif
 
Inscription : novembre 2004
Messages : 247
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 247
Points : 217
Points : 217
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)..
bustaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 14h49   #8
Membre du Club
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 50
Points : 50
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...
Anium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 16h23   #9
Inactif
 
Inscription : novembre 2004
Messages : 247
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 247
Points : 217
Points : 217
Changez le nom du repertoire PG binaire installé et faites le test pour voir..
bustaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 16h57   #10
Membre du Club
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 50
Points : 50
Idem, en recompilant aussi..
Anium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 17h47   #11
Inactif
 
Inscription : novembre 2004
Messages : 247
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 247
Points : 217
Points : 217
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. ?????????
bustaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 18h13   #12
Membre du Club
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 50
Points : 50
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...
Anium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 18h15   #13
Membre du Club
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 50
Points : 50
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.
Anium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2008, 03h22   #14
Inactif
 
Inscription : novembre 2004
Messages : 247
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 247
Points : 217
Points : 217
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 .
bustaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2008, 09h11   #15
Membre du Club
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 50
Points : 50
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.
Anium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2008, 10h46   #16
Membre du Club
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 50
Points : 50
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é .
Anium est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h45.


 
 
 
 
Partenaires

Hébergement Web