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

MFC Discussion :

[MFC]Problème d'unresolved sur des fonctions appartenant à une DLL


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 39
    Points
    39
    Par défaut [MFC]Problème d'unresolved sur des fonctions appartenant à une DLL
    Salut à tous.

    J'ai un petit problème avec une DLL que j'ai crée. Mon projet principal est en MFC développé au départ sous VS6. On utilise maintenant VS.NET.

    J'ai crée une petite DLL MFC sous .NET.

    J'ai ajouté ma DLL dans les réf de mon projet principal, j'ai bien inclus mon .h la ou je veux l'utiliser. A la compilation je n'ai aucun probleme.

    Mais au moment du link j'ai des unresolved sur toutes les fonctions appartenant à ma DLL...

    J'ai bien ajouté ma lib dans la config de mon projet (option->Editeur de lien->dépendance supplémentaire). Je l'ai mis comme ca : c:\sonchemin\ComDLL.lib

    Mais j'ai quand meme des unresolved... Et je ne vois vraiment pas pourquoi.

    Quelqu'un aurait il une idée ? Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Affiche tes external unresolved

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    Et voila :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Kernel error LNK2019: symbole externe non résolu "public: __thiscall CComDLL::CComDLL(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >)" (??0CComDLL@@QAE@V?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z) référencé dans la fonction "public: __thiscall CGestionCompteur::CGestionCompteur(class CWnd *)" (??0CGestionCompteur@@QAE@PAVCWnd@@@Z)
     
    Kernel error LNK2019: symbole externe non résolu "public: void __thiscall CComDLL::AllezMonGros(void)" (?AllezMonGros@CComDLL@@QAEXXZ) référencé dans la fonction "public: __thiscall CGestionCompteur::CGestionCompteur(class CWnd *)" (??0CGestionCompteur@@QAE@PAVCWnd@@@Z)
    Tant que j'y suis mon .h

    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
     
    // ComDLL.h : fichier d'en-tête principal pour la DLL ComDLL
    //
     
    #pragma once
     
    #ifndef __AFXWIN_H__
        #error incluez 'stdafx.h' avant d'inclure ce fichier pour PCH
    #endif
     
    #include "resource.h"        // symboles principaux
     
     
     
    class CComDLL : public CWinApp
    {
    private :
        CString m_IP;
    public:
        CComDLL(CString IP);
        void AllezMonGros();
    };
    Je peux mettre le cpp mais je pense pas que ca fasse beaucoup avance le schimblik :p

    [edit]
    Oui je sais le nom de ma fnc est pourri mais quand je me prends la tete j'ai tendance a mettre n'importe quoi

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Points : 347
    Points
    347
    Par défaut
    Bonjour

    Je te conseille de remplacer tes CString dans ta DLL MFC par une variable plus portable tel qu'un BSTR pour eviter des problemes de portabilité de ta DLL .

    Cordialement

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    Et sinon personne n'a une petit idée de pourquoi ca ne marche pas ?

    Parce que j'ai beau cherche

    J'ai essayer #pragma comment(lib,"c:\\travail\\pr35h\\ComDLL.lib") mais ca ne change rien du tout :/

  6. #6
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    euh tu as exporter ta classe contenu dans la DLL ?
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    C'est à dire ?

  8. #8
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    est ce que avant avec vs6 tu pouvais utiliser ta dll ?
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    C'est une DLL que j'ai crée sous VS.NET. En gros je viens juste de la créer...

  10. #10
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    ah

    est ce que tu as un truc style __dllspec(export) ou une macro qui definit cela devant le nom de ta classe ?
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  11. #11
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    ah non j'ai pas de chose comme ca...

    Qu'est ce qu'il faudrait mettre ou alors ou est ce que je pourrai trouver quoi mettre devant ?

    Parce que la je doit avouer que je suis à la rue...

  12. #12
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    rajoute ca dans stdafx.h
    rajoute ca dans ton .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #ifdef _MYLIB_DLLAPI_
      #define MYLIB_DLLAPI __declspec(dllexport)
    #else
      #define MYLIB_DLLAPI __declspec(dllimport)
    par ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class MYLIB_DLLAPI CComDLL
    et recompile ta dll
    pour plus d'info voir la :http://www.codeproject.com/dll/dllexport.asp
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  13. #13
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    Ok je test ca et je te tiens au courant.

    Quoi qu'il en soit merci quand meme

  14. #14
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    Bon mon logiciel dinosaure à l'air de linker correctement. Merci beaucoup

    Bon ca plante mais pas sur que ca ai un rapport :p

  15. #15
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    est ce que tu as changé le .h de ta classe dans ton le source de ton app ? sinon faut que tu la remplace par celle que tu viens de faire
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  16. #16
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    Vi j'ai bien change le .h dans l'application principal...

    La j'en suis a tant que j'utilise pas de fonction de ma classe tout va bien...

    Des que je l'instancie dans le code ca plante...

    Mais ce qui est tres bizarre c'est que je n'ai pas encore apelle la fenetre ou j'instancie l'objet quand ca plante... Ca plante au lancement de l'application...

    [EDIT]

    Hum c'est rageant... J'ai une belle quantité d'exception non géré au lancement de l'app mais si je fais continuer a toutes l'app se lance normalement et lorsque je me sers de mon objet ca marche nickel....

    Ce qui est bizarre c'est que l'on dirait que les plantages se passe avant meme d'arriver au point de démarrage de mon application. Sur le chargement des dll peut etre...

    Une idée quelqu'un ?

  17. #17
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    Bon après moult tests ca ne plante plus que lorsque mon projet est en debug...

    Quelqu'un aurait une idée de ce qui peut faire que cela plante en debug et pas en release ?

Discussions similaires

  1. Réponses: 18
    Dernier message: 25/06/2007, 09h45
  2. Utiliser des fonctions d'une DLL C++
    Par ced001 dans le forum Delphi
    Réponses: 2
    Dernier message: 09/02/2007, 16h03
  3. Retrouver les valeurs des paramètres des fonctions d'une DLL
    Par Bernard Martineau dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 10h42
  4. utilisation des fonctions d'une dll
    Par jackk dans le forum C++
    Réponses: 14
    Dernier message: 15/06/2005, 16h50

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