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

Delphi Discussion :

Problème unable to load x.dll


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 176
    Points : 78
    Points
    78
    Par défaut Problème unable to load x.dll
    Bonjour a tous,

    Mon programme a besoin de dll pour fonctionner (libmysql, dbexpress.dll et midas.dll). Ces dll se trouve a la racine de mon programme (je n'est spécifié null par a delphi ou il devait aller chercher les dll)

    Admettons que mon programme ce trouve dans c:\programe quand je le lance tous va bien tous marche nikel aucun problèmes de dll.

    Admettons qu'une personne soit venu sur mon pc et a supprimé le répertoire c:\programe. A mon retour je recopie mon dossier programme mais sur le bureau cette fois ci (et non dans c:\programme ou il était a la base).

    La quand je lance mon programme j'ai un message d'erreur me disant que le programme n'arrive pas a charger midas.dll.

    Pour que le programme remarche il faut que les dll de mon programme se trouve dans c:\programme (repertoire d'ou le programme a étais lancer la premiere fois.
    Qui lui dis "va chercher les dll dans c:\programme\" alors que j'ai reboot, j'ai changer d'exe entre temps, et que de plus les dll se trouve a sa racine ? pourquoi il veux absolument aller dans un répertoire qui n'existe pu ? et comment fait t'il pour savoir meme aprés un reboot, un arret de la machine, une autre version de l'exe qu'il dois aller chercher les dll ailleur que a sa racine ? y'a quelque chose qui s'écrit dans windows ?

    Sinon comment je peux résoudre mon probleme ? Comment je peux dire a delphi d'aller chercher les dll a la racine du programme ? (je veux pas les mettre dans un autre répertoire car le programme est defois utilisé a partir de clé usb)

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 731
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 731
    Points : 15 136
    Points
    15 136
    Par défaut
    Y aurait pas un changement de chemin dans ton prog ?
    Et ça,
    je n'est spécifié null par a delphi ou il devait aller chercher les dll
    , c'est p'têt' pas terrible.
    Tu pourrais te faire une variable CheminProg: string; que tu initialiserais au démarrage, style CheminProg := ExtractFilePath(ParamStr[0]); (de tête, mais je dois pas être trop loin), après, pour charger tes dll tu utiliseras LoadLibrary(CheminProg\madll.dll) ou approchant.
    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 176
    Points : 78
    Points
    78
    Par défaut Marche tjrs pas :(
    Salut merci de ta réponse j'ai essayé de faire comme ca mais sans success

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm5.ChargeLesDll();
    var ChemainDLL :string;
    begin
      chemainDLL := ExtractFilePath(application.ExeName);
      showmessage(chemainDLL);
      LoadLibrary(Pchar(chemainDLL + 'dbexpmysql.dll'));
      LoadLibrary(PChar(chemainDLL + 'libmySQL.dll'));
      LoadLibrary(PChar(chemainDLL + 'qtintf70.dll'));
      LoadLibrary(PChar(chemainDLL + 'midas.dll'));
    end;
    dans le formShow de form5 j'apelle la procedure (je ne l'apelle pas dans les autres unités).
    Ai je fais une erreur ? sinon si je veux le faire pointer vers le répertoir windows cmt je peux faire ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 176
    Points : 78
    Points
    78
    Par défaut
    Mon probleme etais causé par le chargement de midas.dll (que j'apelle nul par par moi meme).
    Pour ce qui aurais le meme pb : une alternative a ce probleme et d'inclure la dll dans le programme comme ca :
    uses midaslib;

    A Bientot Ice-Tea

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

Discussions similaires

  1. cygwin : unable to load kernel32.dll
    Par jpmur dans le forum Windows
    Réponses: 2
    Dernier message: 10/02/2015, 20h19
  2. unable to load OraOps10.dll
    Par DeveloppeurWeb dans le forum ASP.NET
    Réponses: 0
    Dernier message: 29/12/2011, 11h14
  3. Unable to load dynamic library php_oci8.dll
    Par rochenico dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 08/01/2008, 11h26
  4. Réponses: 1
    Dernier message: 02/11/2006, 20h09
  5. php_ifx.dll : unable to load dynamic library
    Par fh dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 08/12/2005, 11h31

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