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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    Citation Envoyé par Général03 Voir le message
    J'ai regardé et je possède bien cette DLL dans C:\windows\system32\wben
    Je sais pourquoi, la ligne de commande ne fonctionnais. Le nom du dossier est: C:\WINDOWS\system32\wbem

  8. #8
    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 vrai...désolé....
    mais maintenant que le .lib est créé il faut le faire fonctionner sous builder et c'est là que je bloque...

  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
    En faite j'ai fait juste une ligne qui permet de voir si le logiciel connaît ma fonction :
    #include <vcl.h>
    #pragma hdrstop

    #include<windows.h>

    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;

    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    bool essai = ConfigManagerUserConfig();

    }
    le message que j'obtiens est
    [C++ Erreur] Unit1.cpp(23): E2268 Appel à une fonction non définie 'ConfigManagerUserConfig'

  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
    Citation Envoyé par Général03 Voir le message
    Mais mon prog ne connait toujours la fonction CurrentReading qui est dans cette librairie.
    CurrentReading n'est pas une fonction, mais une propriété. En plus, d'après le site de Microsoft:
    Real-time readings for the CurrentReading property cannot be extracted from SMBIOS tables. For this reason, current implementations of WMI do not populate the CurrentReading property. The CurrentReading property's presence is reserved for future use.

  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
    Alors comment tu fais pour accéder à cette propriété ? car je commence à m'enliser bien profond....

  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
    Salut, je vais te traduire la phrase suivante car je crois que tu n'as pas bien compris.
    The CurrentReading property's presence is reserved for future use.
    La voici:
    La présence de la propriété CurrentReading est réservée pour un usage futur.
    Est-ce que tu as trouvé des exemples sur le net qui utilisait cette propriété???

  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
    Ca j'ai bien compris mais se que je cherche à faire c'est utilisé les fonction liées au WMI (notamment avec cimwin32.lib) pour avoir des infos sur mon processeur. Et c'est là que je bloque !

  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
    Est-ce que tu as essayer de traduire en C++ l'exemple sur le site Web de Microsoft:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    strComputer = "."
    Set colTempProbe = GetObject("Winmgmts:"_
        & "{impersonationLevel=impersonate}!\\"_ 
        & strComputer & "\root\cimv2")._
        InstancesOf("Win32_TemperatureProbe")
    Num = 0
    For Each obj In colTempProbe      
        WScript.Echo   obj.Name & VBNewLine _
            & obj.DeviceID & VBNewLine _
            & obj.Status & VBNewLine _
            & obj.Resolution & VBNewLine _
            & obj.Tolerance & VBNewLine _
            & obj.Accuracy 
        Num = Num +1
    Next
    If Num = 0 Then
        WScript.Echo "No temperature probe data"
    End If
    Si tu n'es pas capable, essaie de trouver un exemple déjà en C++ sur le Web.

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