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 :

accès à une DLL


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Par défaut accès à une DLL
    Bonjour,

    j'ai une DLL "lecture_dbg.dll". Cette DLL comprend une fonction lecture() qui envoi un pointeur float64 qui est un tableau de 3 valeurs x,y et z.

    Je désire utiliser cette fonction dans un projet en C++.

    1) Mon premier problème est l'appel à ma DLL sachant que je n'ai que le fichier .dll

    2) mon second problème est l'appel à la fonction contenue dasn cette fameuse dll

    Voila ce que j'ai fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    HMODULE	hModule = LoadLibrary("lecture_dbg.dll");
    typedef int (WINAPI *DLL_Function_TestFunction) (int _Value);
    DLL_Function_TestFunction pfn_TestFunction;
    pfn_TestFunction = (DLL_Function_TestFunction)GetProcAddress(hModule,"lecture");
     
    float64* tab = lecture();
    if (tab)
    {
        float64 x = tab[0];
        float64 y = tab[1];
        float64 z = tab[2];
    }
    Je suis vraiment bloqué et je sais pas quoi faire

    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    A part tester les retours des fonctions pour ne pas passer à côté des erreurs, et remplacer "lecture()" par "pfn_TestFunction()", ça devrait fonctionner. Et ne pas oublier le FreeLibrary à la fin.

    A l'avenir pense à détailler ton problème plus précisément, on n'est pas devins

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Par défaut
    ok désolé.

    J'ai remplacé la ligne comme tu as dit mais des erreurs existent encore

    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
     
    error C2501: 'pfn_TestFunction' : missing storage-class or type specifiers
     
    error C2373: 'pfn_TestFunction' : redefinition; different type modifiers
    see declaration of 'pfn_TestFunction'
     
    error C2440: 'initializing' : cannot convert from 'int (__stdcall *)(int)' to 'int'
            This conversion requires a reinterpret_cast, a C-style cast or function-style cast
     
    error C2143: syntax error : missing ';' before '*'
     
    error C2501: 'float64' : missing storage-class or type specifiers
     
    error C2501: 'tab' : missing storage-class or type specifiers
     
    error C2440: 'initializing' : cannot convert from 'int (__stdcall *)(int)' to 'int *'
            There is no context in which this conversion is possible
     
    error C2143: syntax error : missing ';' before 'if'
     
    error C2143: syntax error : missing ';' before '{'
     
    error C2447: missing function header (old-style formal list?)
    désolé de mettre autant de code mais je suis sur ce problème depuis 1 semaine et je n'arrive pas a trouver une solution.

    Merci encore

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 266
    Par défaut
    Ce serait pratique d'avoir le bout de code qui génère ces erreurs de compilations...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Par défaut
    C'est a dire ??

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    essai ça peut être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    HMODULE	hModule = LoadLibrary("lecture_dbg.dll");
    typedef float64 * (WINAPI *DLL_Function_TestFunction) (void);
    DLL_Function_TestFunction pfn_TestFunction;
    pfn_TestFunction = (DLL_Function_TestFunction)GetProcAddress(hModule,"lecture");
    if (!pfn_TestFunction) return error;
    float64* tab = (*pfn_TestFunction)();
    if (tab)
    {
        float64 x = tab[0];
        float64 y = tab[1];
        float64 z = tab[2];
    }

Discussions similaires

  1. Problème d'accès à une dll Microsoft
    Par TheReturnOfMuton dans le forum C#
    Réponses: 4
    Dernier message: 12/03/2012, 15h47
  2. accès à une DLL -> erreur de référence
    Par watcha2020 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 20/02/2007, 18h46
  3. Réponses: 1
    Dernier message: 06/10/2006, 10h21
  4. Accés à une dll externe
    Par syrio dans le forum C++
    Réponses: 5
    Dernier message: 07/04/2006, 23h23
  5. [Visual C++6] Accès à une classe d'une dll
    Par charliejo dans le forum MFC
    Réponses: 12
    Dernier message: 09/03/2005, 16h48

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