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 :

utiliser une dll sous visual 2008 c++


Sujet :

Visual C++

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 53
    Points
    53
    Par défaut utiliser une dll sous visual 2008 c++
    Bonjour,
    voilà mon problème.

    J'ai récupéré une dll pour windows qui normalement contient les fonctions permettant de réaliser cet exemple:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #include <iostream>
    #include <set>
    #include <ag/AGAPI.h>
    using namespace std;
     
    int main()
    {
      AGSetId agsetId = CreateAGSet("TIMIT");
     
      TimelineId timelineId = CreateTimeline(agsetId);
     
      SignalId signalId2 = CreateSignal(timelineId,
                                        "LDC93S1:train/dr1/fjsp0/sa1.wav",
                                        "audio",
                                        "wav",
                                        "wav",
                                        "16kHz",
                                        "2");
      set<SignalId> signalIds;
      signalIds.insert(signalId2);
     
      AGId agId = CreateAG(agsetId, timelineId);
      SetFeature(agId, "Purpose", "Testing");
     
      AnchorId anchor1 = CreateAnchor(agId, 10, "sec", signalIds);
      AnchorId anchor2 = CreateAnchor(agId, 20, "sec", signalIds);
      AnchorId anchor3 = CreateAnchor(agId, 30, "sec", signalIds);
     
      AnnotationId annotation1 = CreateAnnotation(agId, anchor1, anchor2, "sentence");
      AnnotationId annotation2 = CreateAnnotation(agId, anchor2, anchor3, "sentence");
     
      SetFeature(annotation1,"label","He will walk to the store.");
      SetFeature(annotation2,"label","He will be walking.");
     
      cout << toXML(agsetId);
    }
    Le problème c'est que je n'ai qu'une dll, donc j'ai beau linker etc... il me dit toujours que ag/agapi.h est introuvable.

    Comment dois je faire?
    Est ce que je dois créer un pointeur vers chacune des fonctions de la dll ?

    Merci par avance.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Si ta DLL ne contient que des fonctions habillées à la C, tu peux utiliser le chargement dynamique et retrouver les adresses de fonctions ainsi (LoadLibrary&Co).
    Si tu es supposé avoir la définition de type particulier ou ta DLL exporte des classes ou ta DLL exporte en C++, alors tu dois impérativement avoir le .h (ou le refaire à la main, mais tu as 9 chances sur 10 de te tromper).

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 53
    Points
    53
    Par défaut
    J'ai pas compris grand chose lol.

    Alors j'ai récupérer les .h (j'ai les sources aussi mais j'arrivent pas à les utiliser.
    J'arrive à compiler l'exemple mais toujours pas à linker ... Je vais tenter la technique load mais c'est un peu fastidieux je trouve.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par milach Voir le message
    J'ai pas compris grand chose lol.

    Alors j'ai récupérer les .h (j'ai les sources aussi mais j'arrivent pas à les utiliser.
    J'arrive à compiler l'exemple mais toujours pas à linker ... Je vais tenter la technique load mais c'est un peu fastidieux je trouve.
    Il doit y a voir un .lib que tu dois spécifier dans les bibliothèques à lier avec ton projet.

  5. #5
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 53
    Points
    53
    Par défaut
    Non y a pas malheuresement sinon tout serait simple.

    Là j'ai plusieurs telechargement qui s'offre à moi : les source et la dll sans rien pour windows.

    Donc là je suis parti pour utiliser la dll avec le load et le getprocadress.

    Mais le truc que je me demande c'est comment je fais pour utiliser des typedef qui sont fait dans la dll , parce qu'il y en a des tonnes. Si j'appelle la fonction, qu'elle renvoie un truc ultra particulier, comment je le récupère, je dois refaire les typedef ?

Discussions similaires

  1. Utilisation d'une DLL sous visual studio 2008
    Par MacCallahan dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 01/12/2013, 13h10
  2. Réponses: 8
    Dernier message: 27/07/2012, 14h59
  3. Déboggage d'une DLL sous Visual Studio
    Par CodeCRC dans le forum Visual C++
    Réponses: 6
    Dernier message: 09/01/2009, 12h16
  4. Réponses: 6
    Dernier message: 07/06/2007, 22h03
  5. Utilisation d'une Dll sous Visual C++
    Par Hokagge dans le forum MFC
    Réponses: 3
    Dernier message: 11/01/2006, 14h40

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