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++Builder Discussion :

Inclure une DLL


Sujet :

C++Builder

  1. #1
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut Inclure une DLL
    Bonjour,

    j'ai besoin, pour récupérer des infos sur mon processeur, d'utiliser Cimwin32.dll mais le souci je ne sais pas quoi mettre dans mon prog pour faire le lien.
    J'ai regardé et je possède bien cette DLL dans C:\windows\system32\wben

    Merci de m'éclairer

    Voici le lien de la classe que je veux utiliser : http://msdn.microsoft.com/library/de...atureprobe.asp

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    Clique sur Projet puis ajouter au projet

  3. #3
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    J'ai déja essayé d'ajouter la DLL de cette façon mais rien ne se passe quand je clique sur ouvrir. Et même après la compilation j'ai toujours un erreur liée a ce manque de ma DLL

  4. #4
    Membre chevronné Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par défaut
    Bonjour

    Faut peut-être quelle soit dans le dossier du projet ?
    avec les autres fichier du projet ?

    A+

  5. #5
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Si tu veux utiliser la DLL, il faut inclure le fichier lib dans ton projet. Pour le générer:
    Citation Envoyé par Interruption13h Voir le message
    Salut !

    Sous console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    
    implib ImportedLibrary.lib   DLL_Source.dll
    
    
    ?

    A+
    Dès il fois il arrive aussi que tu dois enregistrer la DLL avec regsvr32.exe.

  6. #6
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Dans la ligne
    implib ImportedLibrary.lib DLL_Source.dll
    j'ai remplacé "Source.dll" par ma DLL (avec mes autres déclarations de librairie car si je met cette ligne dans mon code il ne connais pas "implib")qui est cimwin32.dll mais ça ne marche pas. Donc je dois utiliser obligatoirement "egsvr32.exe"

  7. #7
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    implib n'est pas une ligne de code en C. C'est une ligne de commande que l'on met dans une invité de commandes MS-DOS.
    Dans ton cas il faut que tu tapes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    implib Cimwin32.lib Cimwin32.dll
    Sa a pour effet de créer un fichier .lib qui va se nommer Cimwin32.lib à partir du fichier Cimwin32.dll.

    L'outil Regsvr32.exe permet d'enregistrer et de supprimer des librairies dynamiques (DLL) et des contrôles ActiveX dans la base de registre. On utilise en général l'Invité de commandes pour effectuer ces opérations.
    - http://astuces.microcoms.net/windows...aliser/02.html

  8. #8
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    En passant, la citation d'Interruption13h que j'ai mis plus haut viens d'un message nommé "creer un LIB à partir d'une DLL" que tu peux voir au: http://www.developpez.net/forums/sho....php?p=2220146

  9. #9
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Si je tapes cette commande
    implib Cimwin32.lib Cimwin32.dll
    dans l'invite de commande j'ai le message suivant :
    Error : Enable to open file
    alors que je possède bien ma DLL dans le dossier C:\windows\system32\wben
    Dois je placer ma dll à un endroit particulier ?
    Merci de ton aide car là je patoge....

  10. #10
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Il faut que tu sois dans le dossier de la DLL pour pouvoir utiliser la commande directement.

    Donc avant il faut faire dans l'invité de commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd C:\windows\system32\wben
    Sans doute que tu viens de la première génération qui n'a pas vraiment connu DOS

  11. #11
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Ma question va te paraitre c.. mais je n'arrive pas à spécifier le chemin où se situe la DLL. J'ai bien taper
    cd C:\windows\system32\wben
    sous DOS mais ensuite il me met
    le chemin d'accès spécifié est introuvable
    alors que la DLL est bien dans le dossier
    T'as une idée de mon problème ? Il y a que cette solution pour inclure ma DLL on ne peut pas placer dans l'en tête une instruction particulière ?

  12. #12
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Quand tu tapes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd C:\windows\system32\wben
    Est-ce que tu es dans
    C:\xxxxxxxxx>
    Si tu es sur un autre disques il faut préalablement faire:

  13. #13
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    C'est se que j'avais fait mais ça ne marche pas, j'ai toujours le même message d'erreur....

  14. #14
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Fais un fichier que tu nommes "makedll.bat" dans le dossier C:\windows\system32\wben. Met le texte suivant à l'intérieur du fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    implib Cimwin32.lib Cimwin32.dll
    pause
    Une fois sauvegarder, clique deux fois sur le fichier pour l'exécuter. Si tu me dis qu'il y a encore un problème, c'est que le fichier Cimwin32.dll n'existe pas ou le dossier C:\windows\system32\wben n'existe pas.

  15. #15
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Je viens de faire se que tu m'as dis et j'obtiens bien un écran DOS sans msg d'erreur....tu vois d'où viens mon problème ??

  16. #16
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Est-ce que le fichier Cimwin32.lib a été généré?

  17. #17
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    a oui exact j'avais pas fait gaffe mais tu as raison le fichier Cimwin32.lib a été généré... comment tu as fait ca ????
    Mais mon prog ne connait toujours la fonction CurrentReading qui est dans cette librairie. Je dois inclure quelque chose dans mon en-tête?
    tu y es presque...

  18. #18
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Si tu as besoin de plus d'information sur la commande implib:
    Syntax: IMPLIB [options] libname[.lib] [@respfile | srcname] [srcname ...]
    Options:
    -a Add '_' alias for MS flavor cdecl functions
    -c Case sensitive symbols
    -f Force imports by name (with hints)
    -w No Warnings

    Respfile may contain a list of source files to process.
    Wildcards are ok for .DLL and .DEF file names.
    Si le fichier lib n'a pas été généré tu peux modifier le code de ton batch file pour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    implib Cimwin32.lib Cimwin32.dll >rapport.txt
    pause
    Et ouvrir le fichier rapport.txt et mettre le contenu sur le forum pour je j'y jette un coup d'oeil.

  19. #19
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Citation Envoyé par Général03 Voir le message
    a oui exact j'avais pas fait gaffe mais tu as raison le fichier Cimwin32.lib a été généré... comment tu as fait ca ????
    Mais mon prog ne connait toujours la fonction CurrentReading qui est dans cette librairie. Je dois inclure quelque chose dans mon en-tête?
    tu y es presque...
    Il faut ajouter le fichier lib a ton projet C++Builder.

  20. #20
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    En passant, tout est expliqué ici: http://lfe.developpez.com/DLL/#L5

Discussions similaires

  1. inclure une DLL dans une Librairie
    Par TheBlackReverand dans le forum C#
    Réponses: 11
    Dernier message: 20/12/2007, 11h01
  2. [g++]Inclure une .dll
    Par NorthernLights dans le forum Autres éditeurs
    Réponses: 14
    Dernier message: 17/03/2006, 14h19
  3. Inclure une DLL dans le .exe final?? possible?
    Par xavmax dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2005, 17h00
  4. [dll] inclure une dll
    Par baert dans le forum Autres éditeurs
    Réponses: 9
    Dernier message: 25/11/2003, 10h46
  5. Inclure une dll dans une ressource
    Par bgcode dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/08/2003, 11h12

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