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

Visual C++ Discussion :

Probl�me de DLL avec libjpeg


Sujet :

Visual C++

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 45
    Par d�faut Probl�me de DLL avec libjpeg
    Bonjour,

    J'ai d�velopp� un logiciel utilisant libjpeg, compil� avec ancienne version de Visual C++. Tout fonctionnait bien et je pouvais utiliser l'ex�cutable g�n�r� sur n'importe quel PC.

    Puis j'ai chang� de PC et j'ai install� Visual C++ 2019. Et depuis j'ai des soucis avec les DLL de libjpeg :
    1. Sur un premier PC, l'ex�cution du programme affichait "Impossible d'ex�cuter le code, car jpeg62.dll est introuvable". Du oup j'ai mis jpeg62.dll dans le r�pertoire du programme, et tout fonctionne bien.
    2. Sur une second PC, j'ai installer le logiciel en mettant directement jpeg62.dll dans le r�pertoire. Et l�, l'ex�cution du programme m'affiche "Wrong JPEG library version : library is 62, caller expects 50".

    Je ne comprends pas tout. Comment faire pour que la DLL sont link� avec le code, et �viter ainsi le m'essage d'erreur

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    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 503
    Par d�faut
    Quand un programme a besoin d'une Dll, g�n�ralement, on s'arrange pour que le programme d'installation ou le MSI ajoute la Dll compatible avec l'ex�cutable a un endroit accessible par le chargeur de l'OS, lors du lancement du programme.
    Que le r�pertoire du fichier image du programme fasse partie du DLLPATH, c'est pas une obligation et, g�n�ralement, les outils de cr�ation d'installation (exe ou MSI) se chargent eux-m�mes de ce type de d�tails.
    Chaque version de VC++ vient avec ses "redistribuables" qu'il faut g�n�ralement ajouter � l'installation (sous forme de MSM � ajouter au MSI, par exemple).

    > je pouvais utiliser l'ex�cutable g�n�r� sur n'importe quel PC.
    Coup de bol, ou vous ne vous souvenez plus que vous aviez cr�� un package d'installation.

    1.) Prenez la peine de cr�er un projet de d�ploiement qui s'occupera de copier au bon endroit cette Dll, lors de l'installation de votre solution applicative.
    2.) Les concepteurs de la libjpeg ont eu l'intelligence d'impl�menter un v�rificateur de version lors du chargement de la Dll. Vous devriez les remerciez.
    Quand vous linkez votre ex�cutable avec une librairie de dll, un fichier "libjpeg.lib" ou approchant, ce fichier est celui de la version 5.0 de la libjpeg, et non une version 6.2.
    Soit vous utilisez une Dll correspondant au fichier .lib utilis� pendant l'�dition de lien de votre programme.
    Soit vous utilisez un fichier .lib, lors de l'�dition de lien, correspondant � la version de la Dll que vous voulez utiliser au runtime.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 45
    Par d�faut
    Merci Bacelar pour toutes ces pr�cisions.

    J'ai finalement r�solu le probl�me en repartant des sources libjpeg et en me construisant une biblioth�que statique plut�t qu'une dll.

    Il y avait quand m�me quelque chose d'�trange, car le logiciel demandait la version 6.2 de libjpeg et, quand on avait install� cette version 6.2, il disait qu'il fallait la version 8.0. Et quand on installait la 8.0 il plantait.
    Mais �a marchait quand m�me sur certains PC.
    Bizarre.

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    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 503
    Par d�faut
    il disait qu'il fallait la version 8.0
    C'est qui il ?
    Et quand on installait la 8.0 il plantait.
    Mais �a marchait quand m�me sur certains PC.
    Les "myst�res" du Dll Hell.
    En regardant attentivement la configuration et les fichiers pr�sents dans le syst�me, le "myst�re" s��vanouit.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me de DLL avec serveur IIS
    Par Digital'z dans le forum D�veloppement Web avec .NET
    R�ponses: 2
    Dernier message: 19/09/2016, 17h10
  2. Probl�me de DLL avec Qt
    Par iSteelZ dans le forum D�buter
    R�ponses: 5
    Dernier message: 08/10/2011, 14h41
  3. Probl�me chargement dll avec VC++ 2K8
    Par Tazadar dans le forum C++
    R�ponses: 0
    Dernier message: 16/04/2009, 16h05
  4. Probl�me de lien avec wsock32.dll sous g++ (mingw32)
    Par TheShadow dans le forum Autres �diteurs
    R�ponses: 3
    Dernier message: 11/04/2006, 14h43
  5. Probl�me cr�ation de DLL avec CString
    Par loupdeau dans le forum MFC
    R�ponses: 3
    Dernier message: 21/07/2005, 20h55

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