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 :

[Link] Erreur 2005


Sujet :

Visual C++

  1. #1
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    212
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Par d�faut [Link] Erreur 2005
    Bonjour tlm,

    J'ai des erreurs de link concernant la fonction DLLMain dans mon projet (qui g�n�re une DLL) et pourtant je n'ai qu'une seule d�claration da la fonction main.

    nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in RedundancyManager.obj
    nafxcwd.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in RedundancyManager.obj; second definition ignored
    Quelqu'un peut-il m'aider?
    Merci.

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Une MFC Regular DLL ne doit pas avoir de DllMain(), mais utiliser celle fournie par MFC (justement dans nafxcwd.lib).

    Si tu veux ta propre DllMain(), tu dois faire une MFC Extension DLL (mais seul un programme MFC pourra l'utiliser).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    212
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Par d�faut
    Quand je coche l'option "Force File Output" au niveau des settings du projet, les erreurs deviennent des warnings comme suit:

    nafxcwd.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in RedundancyManager.obj; second definition ignored
    nafxcwd.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in RedundancyManager.obj; second definition ignored
    Est ce que �a r�soud le probl�me ou c juste �a le cache?

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    �a le cache.

    Pour corriger le probl�me, tu dois changer de type de projet ou adapter ton code au type.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    212
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Par d�faut
    Le type de mon projet est win32 DLL, je comprends pas qu'est ce que MFC me veut??!!

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Tu es li� � MFC (nafxcwd.lib est une biblioth�que MFC).
    Cherche tout ce qui se rapporte � MFC dans les options de ton projet...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    212
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Par d�faut
    J'utilise quelques fonctionnalit�s de MFC mais je vois pas le rapport avec la fonction main.

    J'ai essay� les trois configurations possibles :
    - Not Using MFC
    - Use MFC in a Static Library
    - Use MFC in a shared DLL

    et j'obtiens toujours les m�mes erreurs.

    la lib nafxcwd.lib, que contient elle au juste?

  8. #8
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Tu es donc sous VC++6.

    Tu dois �tre en "Not using MFC" et �tre certain de n'inclure AUCUN header MFC (certains doivent contenir un #pragma comment qui te lie � MFC...)

    Je ne sais pas exactement ce que contient nafxcwd.lib, mais entre autres elle contient une fonction DllMain() pour les MFC Regular DLL (DLL normale utilisant MFC).
    http://msdn2.microsoft.com/en-us/library/e692ht7b.aspx
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    212
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Par d�faut
    J'ai 3 headers MFC :

    #include <afxdisp.h>
    #include <afx.h>
    #include <afxmt.h>
    Tu penses que c l'origine du probl�me?

  10. #10
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Oui, ou bien une des origines.
    Supprime toute inclusion de ces headers. Apr�s tout, si tu n'utilises pas MFC, tu n'en as pas besoin.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    212
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Par d�faut
    c'est �a le probl�me, j'ai besoin de MFC.

  12. #12
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Donc, c'est une :
    Citation Envoy� par M�dinoc
    MFC Regular DLL (DLL normale utilisant MFC).
    Donc, tu dois suivre les conventions des MFC Regular DLLs : Au lieu d'utiliser une DllMain() personnelle, tu dois instancier (en variable globale) un objet d'une classe d�riv�e de CWinApp dont la m�thode InitInstance() sera appel�e par la DllMain() de MFC...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    212
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Par d�faut
    T'es s�r que �a pose un probl�me qu'en gardant le type de projet (win32 DLL) et en utilisant l'option "Force File Output"?

    J'ai test� la DLL g�n�r�e et je n'ai pas constat� de probl�me jusqu'ici.

  14. #14
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    J'ignore si tu as un probl�me ou non en r�alit�, mais c'est crade, vachement crade...

    Et l'une des deux DllMain() ne sera pas appel�e. Par cons�quent, MFC (ou ta DLL) ne sera pas correctement initialis�...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Link VC++ 2005 x64
    Par fregolo52 dans le forum Visual C++
    R�ponses: 0
    Dernier message: 26/02/2009, 10h12
  2. db link erreur
    Par nicolas_lepot dans le forum MS SQL Server
    R�ponses: 3
    Dernier message: 04/04/2008, 18h12
  3. Erreurs de link wxWidgets et VC++ 2005
    Par Muetdhiver dans le forum wxWidgets
    R�ponses: 7
    Dernier message: 18/02/2007, 10h29
  4. R�ponses: 1
    Dernier message: 02/11/2006, 20h09
  5. BD LINK erreur ORA-ORA-12154
    Par de LANFRANCHI dans le forum Oracle
    R�ponses: 8
    Dernier message: 15/02/2005, 15h39

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