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

C Discussion :

Probleme fichier .lib


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 3
    Par défaut Probleme fichier .lib
    Bonjour,

    J'ai une dll mais je voudrais avoir le .lib correspondant.

    J'ai vu qu'on pouvais utiliser la commande LINK mais cela ne fonctionne pas sous Vista.

    SI quelqu'un a une idee merci

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Pour utiliser une DLL, il existe 2 possibilités :
    1. soit tu possèdes le .dll, et le (ou les) .lib et .h (ou les) associés
    2. soit tu ne possèdes que le .dll


    Cas 1, c'est le plus facile. Tu inclus le (ou les) .h dans ton code, tu link ton projet avec le (ou les) .lib associés, tu copies le .dll dans le bon répertoire (répertoire de ton binaire ou un des répertoires de la variable PATH ou alors dans le répertoire WINDOWS\system32).

    Cas 2, c'est plus délicat. Il faut alors que tu connaisses PARFAITEMENT les fonctions de la DLL que tu veux appeler ainsi que leurs interfaces. Le mot PARFAITEMENT est important. Cette méthode ne souffre pas d'à peu près sinon, cela peut être le crash dans ton application et le problème va être très dur à diagnostiquer (problème de ton programme, de la DLL, de l'accès à cette DLL, ...).

    Pour le cas 2, tous se passe avec LoadLibrary(), GetProcAddress(), FreeLibrary() et les pointeurs de fonction.

    LoadLibray() est utilisé pour charger ta DLL dans ton espace mémoire.
    GetProcAddress() est utilisé pour récupérer l'adresse de la fonction que tu veux utiliser(). Cette addresse est stockée dans une variable locale de type pointeur de fonction et ensuite tu appelles la fonction de ta DLL au travers de ce pointeur de fonction.

    Quand tu as fini d'utiliser ta DLL, il ne pas oublier d'appeler FreeLibrary() pour décharger ta DLL.

    Regarde dans ce post : Comment fonctionne ce bout de code ?, il y a un exemple d'utilisation de toute cette mécanique.

    DependencyWalker est un outil qui permet de voir entre autres les fonctions exportées par une DLL.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

Discussions similaires

  1. problem de linkage avec un fichier .lib
    Par aliwatte dans le forum Débuter
    Réponses: 8
    Dernier message: 17/03/2013, 13h49
  2. creer un fichier lib à partir d'une DLL
    Par benoit70 dans le forum MFC
    Réponses: 12
    Dernier message: 28/09/2008, 22h58
  3. Génération DLL avec 2 fichiers .lib
    Par JeanPhi dans le forum MFC
    Réponses: 7
    Dernier message: 27/08/2007, 12h02
  4. Quel fichier .lib ?
    Par Neilos dans le forum DirectX
    Réponses: 10
    Dernier message: 27/01/2005, 19h16
  5. Problème avec lib SDL
    Par Info-Rital dans le forum Linux
    Réponses: 8
    Dernier message: 02/07/2004, 20h59

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