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 :

Utilisation d'une DLL tierce partie


Sujet :

Visual C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 42
    Points : 39
    Points
    39
    Par défaut Utilisation d'une DLL tierce partie
    Bonsoir,

    je rencontre un souci assez pénible depuis quelques temps en C++.
    Certains programmes/librairies arrivent avec des fichiers .h et .lib, qu'on peut utiliser pour ses propres programmes. Seulement voilà, certains .lib font référence à des .dll, et si ces dll ne sont pas dans le repertoire de sortie de mon programme, j'ai un joli message d'erreur "dll machin introuvable ; la réinstallation de l'application peut corriger le problème".

    C'est un problème assez frustrant, puisque ça oblige à avoir un répertoire avec un .exe et plein plein de .dll, sans pouvoir les rassembler dans un sous-répertoire pour faire plus propre. Pourtant, je pense que ça doit être possible de dire à un programme que la DLL correspondant à telle librairie se trouve à un certain endroit du disque dur et pas seulement dans son propre répertoire (sinon ça doit être le bordel sur les gros projets).

    Je pense qu'on peut utiliser la fonction "loadlibrary", je l'ai utilisé pour charger MAPI. Seul hic, cette fonction renvoie un Handle, et je ne sais pas comment faire comprendre à l'éditeur de lien, ni même au programme par la suite, que ce handle correspond à la DLL d'un .lib que j'ai spécifié via un #pragma comment...

    Bref, je suis un peu dans l'obscurité, pourtant je pense pas que mon problème soit insoluble.

    Merci !

  2. #2
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Il y a deux types de chargement de dlls.
    Soit ta dll est chargé implicitement lors du premier chargement de ton exe
    Soit ta dll est chargé explicitement lors d'un appel explicite dans ton code à LoadLibrary.

    Si tu ne veux pas que tes dlls partagent le même répertoire que ton exe, tu peux les balancer dans le répertoire système Windows ou System32. Mais attention dans ce répertoire signifie que tu exposes ta dll à tout exe qui peut en avoir besoin ou bien à un exe qui recherche une version antérieure de ta dll d'ou bien faire une gestion des versions.

    Tu la variable d'environnement PATH que tu peux utiliser pour indiquer à ton exe un répertoire précis là où il va les chercher. Mais il ne faut pas surcharger cette variable inutilement. Par exemple MS SQL Server utilise cette variable mais pas VS, ni Acrobat, ni Office.

    Et puis si tu examines bien par exemple ces softs Acrobat ou Office ou bien même VS les dlls sont souvent dans le même répertoire que l'exe.

    Pour plus de précision ne pas hésiter à lire l' MSDN.

  3. #3
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    J'oubliais, lorsqu'il s'agit d'une dll qui enregistre son path dans la base de registre comme par exemple une DLL ATL COM, ou un ActiveX. Ce genre de dll ne pose pas de problème pour l'exe qui en a besoin.

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

Discussions similaires

  1. Utilisation d'une DLL tierce - Dev-cpp + VB6
    Par vihrea dans le forum Dev-C++
    Réponses: 0
    Dernier message: 08/02/2010, 17h23
  2. Réponses: 6
    Dernier message: 21/06/2005, 21h45
  3. [DLL] Utilisation d'une DLL pour utiliser serveur Firebird
    Par sekiryou dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/08/2004, 14h20
  4. [Info]Utilisation d'une Dll
    Par Assiobal dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 11/06/2004, 21h46
  5. Utilisation d'une dll écrite en delphi 5 dans VB6
    Par Jean-Louis dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2002, 09h19

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