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 :

Visual et liens avec les DLL externes


Sujet :

Visual C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut Visual et liens avec les DLL externes
    Bonjour,

    Je découvre un programme dont il manquait plein de DLL à l'exécution.
    J'ai mis celles que je trouvais mais il m'en manque encore (notamment une IIEMBDNT.DLL qui vient de IlogViews, je crois que j'ai un lien mais au boulot l'adresse de téléchargement est filtrée donc je ne sais pas encore si le package que je vais télécharger chez moi contient bien cette DLL).

    Bref, j'aimerais plus largement savoir comment Visual sait de quelles DLL il a besoin. Où dans les paramètres il voit qu'il a besoin de cette DLL?

    Merci.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    l'utilitaire visual dependency walker te donneras les dépendances de ton programme.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut
    Merci; c'est déjà utile comme réponse.

    Cela dit, j'aurais voulu voir aussi directement dans les paramètres de Visual si on voyait quelque part à quelle endroit cette DLL est recquise.

  4. #4
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Concrètement, Visual C++ (enfin pas l'IDE mais les outils commandés par l'IDE) ne s'occupe pas des DLLs qui vont être utilisés par un programme.
    La seule chose qui lui importe ce sont les bibliothèques (*.lib) sur lequel l'éditeur de lien (linker) va lier.

    Soit la bibliothèque est statique (et le code est importé directement dans le programme) soit la bibliothèque créée une liaison dynamique.

    Dans ce dernier cas, l'éditeur de lien crée une partie spéciale dans l'exécutable (ou la DLL, etc.) nommée IAT (Import Address Table) où sont référencés le nom de la DLL et les fonctions importées depuis cette DLL (et l'outil que propose Farscape permet de voir cette IAT sous une forme lisible).

    Donc, in fine, la question n'a pas vraiment de sens. Il n'y pas non plus de moyen, depuis l'IDE, de voir si une bibliothèque va être liée statiquement ou dynamiquement (c'est le boulot du développeur de savoir sur quoi il lie et de proposer les DLLs aux utilisateurs si besoin est).

    Normalement, si une bibliothèque est utilisée pour être liée dynamiquement, la DLL est proposée quelque part (ou alors il faut compiler le projet de la DLL qui produira un *.lib et une *.dll).

    Si tu n'as pas toutes les clés en main, utilise le programme donné par Farscape et cherche les DLLs auprès des sites proposant la (les) bibliothèque(s) ou sur le net.

    P.S : "visual dependency walker" c'est le bon outil, mais... pour Linux
    Pour Windows c'est "dependency walker" : http://www.dependencywalker.com/

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut
    Bonjour,

    OK... J'ai bien l'outil, merci pour l'explication.
    Par contre je n'ai pas eu moyen de trouver sur le net la dll IIEMBDNT.DLL, même dans le package ingres2006-9.0.4-105-gpl-win-x86-fulldoc.zip que j'ai téléchargé chez moi hier soir.

    Je ne peux donc pas faire fonctionner mon programme...quelqu'un aurait une idée d'où je peux la trouver?

  6. #6
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    apparemment il suffit d'aller dans le chemin des binaires d'Ingres ( %II_SYSTEM%\ingres\bin ) et de renommer la DLL oiembdnt.dll en iiembdnt.dll :

    http://groups.google.com/group/comp....9fcc21252a37e2

    Il y a seulement 3 réponses sur google en mettant le nom de cette DLL comme mot clé...

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut
    Et oui, que 3 réponses sur google et cette histoire ne m'a pas échappé...sauf que je n'ai pas non plus cette DLL oiembdnt.dll dans le package téléchargé

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut
    Bon, évidemment le problème qui me reste n'est plus en lien direct avec la question, mais je suis toujours en panne pour trouver ma(mes?) DLL manquante(s) : iiembdnt.dll ou oiembdnt.dll

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/03/2006, 16h57
  2. Réponses: 11
    Dernier message: 20/01/2006, 12h35
  3. [Visual Editor] problème avec les Label
    Par Willy7901 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 22/08/2005, 12h30
  4. Origine de Visual C++ - lien avec les MFC
    Par drinkmilk dans le forum MFC
    Réponses: 5
    Dernier message: 18/04/2005, 10h47

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