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

Langage Delphi Discussion :

Comment trouver le chemin des DLL sous windows 7


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Comment trouver le chemin des DLL sous windows 7
    Bonjour à tous,

    Si j'installe une DLL dans le répertoire System telle que par exemple "Ma DLL.DLL" je devrai pouvoir la trouver par le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.FormCreate(Sender: TObject);
    var
      Ok: Boolean;
    begin
      Ok:= FileExists('C:\\Windows\System32\PeekColor_Init.dll');
      if not Ok then ShowMessage('La DLL "MaDLL" est absente');
    Or la DLL est dans le répertoire systeme et malgré tout le message s'affiche ce qui signifie qu'il ne l'a pas trouvée.

    Deux questions :
    1. La fonction FileExists est-elle mal écrite ? si Oui comment l'écrire ?
      2. Peut-on détecter la version Windows courante et dans ce cas comment trouver le chemin du système ?

    Une réponse à la première question avec un exemple de code serait suffisante pour être bienvenue !

    Merci à tous

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    pourquoi un double slash ? C:\\

    sinon un LoadLibrary('PeekColor_Init.dll') vu qu'elle est dans System32, pas besoin de spécifier le chemin
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Ok j'ai deux librairies dans System32 Une seule est reconnue
    J'ai effectivement en début de Form1.create chargé les deux librairies avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      LoadLibrary('PeekColor_Init.dll');
      LoadLibrary('PeekGraph.dll');
    Mais avant même d'arriver par traçage sur ces lignes à la compilation j'obtiens le message d'erreur système : "Impossible de démarrer le programme car il manque PeekGraph.dll sur votre ordinateur. Essayez de réinstaller le programme pour corriger ce problème."
    Ce message n'apparait que si les lignes de code dans Form1.create
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Ok:= (PEEK_INIT_Version(Pchar(Application.Title))<>0) and PeekGraphDLL_Init_DLL(Application);
      if not Ok then
      begin
        ShowMessage('Désolé mais la DLL "PeekGraph.dll" ne reconnait pas l''application');
        Halt;
      end;
    sont opérationnelles, si je les rend inopérationnelles pas de message d'erreur. Ce n'est donc pas les deux lignes de chargement des librairies qui seraient responsables.

    J'ai donc essayé de tracer le code des DLL mais le message se produit avant le premier accès dans la première DLL qui n'est d'ailleurs pas PeekGraph.dll !!!

    Je ne comprend vraiment pas ce qui se passe !!!!

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

Discussions similaires

  1. Comment trouver les structures des api windows
    Par Tonioyo dans le forum Windows
    Réponses: 1
    Dernier message: 21/01/2009, 09h40
  2. Réponses: 0
    Dernier message: 26/04/2008, 12h21
  3. Réponses: 0
    Dernier message: 23/10/2007, 11h32
  4. Comment gérer des reps sous Windows & Linux ?
    Par Sylver--- dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2007, 13h04
  5. Réponses: 9
    Dernier message: 05/11/2006, 00h33

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