Aide sur DLL en Visual C++
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Aide sur DLL en Visual C++



  1. #1
    niala72bis

    Aide sur DLL en Visual C++


    ------

    Bonjour à tous,

    Voici mon problème : j'ai un workspace (récupéré sur le net) avec au départ deux projets dont une DLL, qui fonctionne.

    J'ai ajouté un autre projet contenant de l'USB (provenant aussi du net) et que j'essaie de transformer en DLL.

    Cette DLL se compile aussi, dans le workspace. Mais je n'arrive ni à instancier une classe, ni à appeler une fonction de cette DLL dans la fenêtre de base.

    J'ai expliqué plus en détail mon problème ici :

    http://www.edaboard.com/thread330206.html#post1409958

    C'est en Visual C++ version 6.0 et je cherche quelqu'un pouvant m'aider. Merci d'avance.

    -----

  2. #2
    invite0bbe92c0

    Re : Aide sur DLL en Visual C++

    Citation Envoyé par niala72bis Voir le message
    Mais je n'arrive ni à instancier une classe, ni à appeler une fonction de cette DLL dans la fenêtre de base..
    Si on en croit votre autre intervention sur le lien mentionné supra, vous ne pouvez même pas compiler; partant de là, on ne voit pas trop bien comment vous pourriez instancier quoi que ce soit.

    De plus, on a pas de boule de cristal; donc sans code source ....

    Accessoirement,on ne comprend pas non plus pourquoi vous travaillez avec un IDE aussi ancien que VC++ 6.0 (qui a plus de 15 ans ). Vous aurez beaucoup de mal à trouver de l'aide sur cet IDE. (je n'ai pas de compétence en archéologie informatique, désolé).

  3. #3
    niala72bis

    Re : Aide sur DLL en Visual C++

    Merci pour votre réponse,

    tout d'abord j'utilise VC++ 6.0 car les exemples que j'ai trouvés sur le net se compilent avec, et pas avec les versions express comme 2005 et 2008 que j'ai essayées. Et j'avais cette version. L'ensemble des 3 projets se compile sans erreur si je n'instancie pas l'objet que j'ai écrit et si je n'appelle pas une fonction du projet usb. C'est ça que je n'arrive pas à faire. Je peux transmettre une petite archive source de moins de 250k contenant l'ensemble.

  4. #4
    invite0bbe92c0

    Re : Aide sur DLL en Visual C++

    Citation Envoyé par niala72bis Voir le message
    C'est ça que je n'arrive pas à faire. Je peux transmettre une petite archive source de moins de 250k contenant l'ensemble.
    On va pas se farcir 250 ko de source.

    Postez déjà les erreurs de compil avec les lignes en erreur.

  5. A voir en vidéo sur Futura
  6. #5
    niala72bis

    Re : Aide sur DLL en Visual C++

    Voici l'erreur :
    demo.cpp
    C:\Documents and Settings\ACER\Bureau\Mini-Tempus 1\vibro\demo.cpp(396) : error C2653: 'clUsb' : is not a class or namespace name
    C:\Documents and Settings\ACER\Bureau\Mini-Tempus 1\vibro\demo.cpp(396) : error C2065: 'FindTheHID' : undeclared identifier
    Error executing cl.exe.

    pour :
    clUsb::FindTheHID();

    avec
    //****************************** ****************************** ****************************** *************/
    bool clUsb::FindTheHID()
    {
    //Use a series of API calls to find a HID with a specified Vendor IF and Product ID.

    HIDD_ATTRIBUTES Attributes;
    DWORD DeviceUsage;
    ...

    qui se trouve dans le clUsb.cpp qui se compile sans erreur.

    Dans le source il y a peu de choses sur les quelles je suis intervenu, et je les repère toujours par //#

  7. #6
    WizardOfLinn

    Re : Aide sur DLL en Visual C++

    Si tout compile et que tu ne peux pas instancier, ça doit être une question d'exportation/importation des classes de la DLL, des dllimport à définir pour l'application utilisant la dll.
    C'est la première fois que tu utilises des classes en dll ?

  8. #7
    niala72bis

    Re : Aide sur DLL en Visual C++

    Oui c'est la première fois. Et j'ai essayé de copier comme c'était fait dans le clPlot qui fonctionne.

  9. #8
    WizardOfLinn

    Re : Aide sur DLL en Visual C++

    J'ai encore un VC++6.0 de la fin du 20ème siècle sur mon poste, qui me sert parfois à reprendre des vieux projets, et cette DLL peut éventuellement m'être utile.
    => tu peux envoyer le projet pour que j'essaye

  10. #9
    niala72bis

    Re : Aide sur DLL en Visual C++

    je te remercie pour ton aide. Voici l'archive, projet principal demo, le plot est fonctionnel, reste l'usb. J'espère que l'envoi du fichier va fonctionner c'est mon premier essai ici, je l'ai ajouté mais je ne le vois pas apparaitre dans le message.
    Fichiers attachés Fichiers attachés

  11. #10
    WizardOfLinn

    Re : Aide sur DLL en Visual C++

    Vu.
    A part une ressource que j'ai dû mettre en commentaire (ID_VIEW_TOOL_BAR), ça compile et ça exécute sans problème apparent, je vois des courbes s'afficher.

    A+

  12. #11
    niala72bis

    Re : Aide sur DLL en Visual C++

    Parfait. Il y a une fonction FindTheHID que j'essaie d'appeler depuis demo, c'est là le problème.

  13. #12
    WizardOfLinn

    Re : Aide sur DLL en Visual C++

    J'ai trouvé, mais c'était quand même un peu vicieux, c'est la première fois que je vois ça pour des symboles générés automatiquement.
    Les fichiers clPlot.h et clUsb.h utilisent exactement le même symbole d'exclusion de recompilation, c'est à dire :

    #if !defined(AFX_DQPLOT_H__0D536D3 7_5CF1_11D1_AED1_0060973A08A4_ _INCLUDED_)
    #define AFX_DQPLOT_H__0D536D37_5CF1_11 D1_AED1_0060973A08A4__INCLUDED _

    Ce qui faisait que si on inclut d'abord clPlot.h, la classe clUsb n'est jamais compilée, et réciproquement.
    Il suffit donc de modifier le symbole dans l'un des deux en-têtes, et tout rentre dans l'ordre.

    A part ça, FindTheHID() n'est pas une méthode de classe.
    Telle que la méthode est définie dans la classe, on écrit, par exemple :
    clUsb wnd;
    wnd.FindTheHID();

    Et non : clUsb::FindTheHID();

    A+

  14. #13
    niala72bis

    Re : Aide sur DLL en Visual C++

    Bonjour,

    merci pour ton aide c'est super ça marche. Pour le symbole d'exclusion c'est ma faute j'ai copié et modifié le fichier h sans faire attention, et comme j'activais séparément les projets pour les compiler je n'ai rien vu.

    Quant à l'instanciation je la faisais dans le .h et non dans le .cpp et donc maintenant tout se compile, je vais continuer d'inclure toutes les fonctions usb pour avancer le projet.

    A plus

  15. #14
    niala72bis

    Re : Aide sur DLL en Visual C++

    Bonjour à tous,

    après avoir conçu la partie hardware de ce projet, je reprends l'applicatif PC et j'ai un souci :

    dans le 3eme projet du workspace, qui génère la dll des fonctions USB, il y a des variables (comme par exemple les buffers pour l'USB char OutputReport[256]...). Comment puis je travailler avec depuis le projet principal ? Est ce que je dois modifier la dll pour passer des pointeurs ? Ou bien la dll pourrait-elle travailler avec des variables globales ?

    Merci d'avance

  16. #15
    niala72bis

    Re : Aide sur DLL en Visual C++

    Bonjour,

    je vois que ça n'inspire pas grand monde ! Et j'ai un autre souci :

    l'exécutable généré (pas encore terminé, il me reste beaucoup de choses à faire) ne fonctionne pas sur tous les ordinateurs. La fonction usb FindTheHID détecte bien le PIC18F2550, mais la fonction WriteOutputReport ne donne pas toujors le résultat escompté. Ce ne sont que des machines sous win xp sp3, et il a fallu pour certaines y metttre dans windows\system32 les dll mfc42d et msvcrt. Je me demande s'il en manquerait d'autres que le programme ne demande pas. Il y a 2 postes sur 6 qui fonctionnent.

    Est ce quelqu'un aurait une idée ? Merci d'avance.

Discussions similaires

  1. Problème de réception port série visual basic ( visual studio 2012)
    Par invite105cee1c dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 30/07/2013, 23h44
  2. Aide visual studio 2008 !?
    Par invite95838e55 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 20/05/2008, 12h00
  3. De l'aide sur visual basic 6 pour un jeu de rôle
    Par invite8134f859 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 03/04/2007, 15h15
  4. besoin d'aide en visual basic
    Par invite6c808494 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 28/02/2006, 00h26
  5. aide sur visual basic???
    Par invitec35bc9ea dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 27/07/2005, 11h14