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 :

Problème de LINK Bizarre !!


Sujet :

MFC

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut Problème de LINK Bizarre !!
    Bonjour je fais une dll Standard Win32 avec des socket de comm et lorque que je complile ça va bien mais lors de la génération j'ai ces problème ;
    (J'ai visual studio 6 SP5 en Allemand)


    unresolved external symbol === Nichtaufgeloestes externes Symbol


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Linker-Vorgang läuft...
       Bibliothek Debug/TCPcomm.lib und Objekt Debug/TCPcomm.exp wird erstellt
    TCPcommfunc.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__htonl@4
    TCPcommfunc.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__WSACleanup@0
    TCPcommfunc.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__WSAStartup@8
    Debug/TCPcomm.dll : fatal error LNK1120: 3 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ach so !!

    hast du Ws2_32.lib gelinket ?

    tu as lié la librairie Ws2_32.lib à ton projet ?

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    oui ça va mieux mais dons mon projet je fais appel à une dll et maintenant après ajout de la Ws2_32.lib, j'ai ce soucis tu as une idée :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    --------------------Konfiguration: TCPcomm - Win32 Debug--------------------
    Kompilierung läuft...
    TCPcommfunc.cpp
    C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xstring(600) : warning C4245: 'initializing' : Konvertierung von 'const int' in 'const unsigned int', signed/unsigned-Konflikt
            C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xstring(133) : Bei der Kompilierung des statischen Datenelements 'const unsigned int std::basic_string<char,std::char_traits<char>,std::allocator<char> >::npos' der Klassenvorlage
    Linker-Vorgang läuft...
       Bibliothek Debug/TCPcomm.lib und Objekt Debug/TCPcomm.exp wird erstellt
    TCPcommfunc.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: bool __thiscall CSocketComm::CreateSocket(unsigned short const *,int,int,unsigned int)" (?CreateSocket@CSocketComm@@QAE_NPBGHHI@Z)
    Debug/TCPcomm.dll : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.
     
    TCPcomm.dll - 2 Fehler, 1 Warnung(en)
    Pourtant ma dll fonction très bien dans d'autre API

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    oui ça va mieux mais dons mon projet je fais appel à une dll et maintenant après ajout de la Ws2_32.lib, j'ai ce soucis tu as une idée :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    --------------------Konfiguration: TCPcomm - Win32 Debug--------------------
    Kompilierung läuft...
    TCPcommfunc.cpp
    C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xstring(600) : warning C4245: 'initializing' : Konvertierung von 'const int' in 'const unsigned int', signed/unsigned-Konflikt
            C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xstring(133) : Bei der Kompilierung des statischen Datenelements 'const unsigned int std::basic_string<char,std::char_traits<char>,std::allocator<char> >::npos' der Klassenvorlage
    Linker-Vorgang läuft...
       Bibliothek Debug/TCPcomm.lib und Objekt Debug/TCPcomm.exp wird erstellt
    TCPcommfunc.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: bool __thiscall CSocketComm::CreateSocket(unsigned short const *,int,int,unsigned int)" (?CreateSocket@CSocketComm@@QAE_NPBGHHI@Z)
    Debug/TCPcomm.dll : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.
     
    TCPcomm.dll - 2 Fehler, 1 Warnung(en)
    Pourtant ma dll fonction très bien dans d'autre API

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    oui ça va mieux mais dons mon projet je fais appel à une dll et maintenant après ajout de la Ws2_32.lib, j'ai ce soucis tu as une idée :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    --------------------Konfiguration: TCPcomm - Win32 Debug--------------------
    Kompilierung läuft...
    TCPcommfunc.cpp
    C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xstring(600) : warning C4245: 'initializing' : Konvertierung von 'const int' in 'const unsigned int', signed/unsigned-Konflikt
            C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xstring(133) : Bei der Kompilierung des statischen Datenelements 'const unsigned int std::basic_string<char,std::char_traits<char>,std::allocator<char> >::npos' der Klassenvorlage
    Linker-Vorgang läuft...
       Bibliothek Debug/TCPcomm.lib und Objekt Debug/TCPcomm.exp wird erstellt
    TCPcommfunc.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: bool __thiscall CSocketComm::CreateSocket(unsigned short const *,int,int,unsigned int)" (?CreateSocket@CSocketComm@@QAE_NPBGHHI@Z)
    Debug/TCPcomm.dll : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.
     
    TCPcomm.dll - 2 Fehler, 1 Warnung(en)
    Pourtant ma dll fonction très bien dans d'autre API

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ca me fait délirer de voir les erreurs en allemand ...

    ta classe CSocketComm, c'est une librairie que tu utilises ? ou elle fait partie de ton projet ?

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    C'est une Librairie que j'utilise, j'arrive à faire passé certaine fonction voici le code que j'utilise : de ma dll

    1. je dérive ma classe SocketComm puis je l'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CSocketManager* m_pCurServer = new CSocketManager;
    m_pCurServer->SetSmartAddressing(false);
    bool bSuccess;
    bSuccess = m_pCurServer->CreateSocket(_T("6020"), AF_INET, SOCK_STREAM, 0);
    m_pCurServer->WatchComm();

    ???????? Ta une idée ??

  8. #8
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    <hors sujet>
    C'est la 1ère fois que je vois les messages d'un compilo Visual C++ en Allemand ... Je serai pas aller bien loin si j'avais eu celui là. ..
    </hors sujet>

    C'est pareil pour le second problème. As tu linké le .lib de la librairy en question à ton projet ?
    Sinon comme tu a pu le remarqué tu as posté trois fois le même message.
    Tu peux en effacer 2 comme ça fera plus propre

  9. #9
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Tu as donc lié la librairie de ta dll pour utiliser les méthodes externes qu'elle offre ?
    as-tu correctement définit les méthodes dans ton .h comme étant externes ?
    as-tu seulement ce problème avec cette méthodes ou avec d'autres de la meme classe ?

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    hors sujet aussi :
    heureusement que j'ai pas un compilo en allemand ... remarque, ca m'encouragerait à pas faire d'erreur de compilation
    mais j'imagine meme pas la tete du débuggeur

  11. #11
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    En faite j'ai testé ma dll dans différent autre projet :

    Une feuille C++ ou je génére un EXE et ça fonction très bien sinon je l'ai aussi testé dans d'autre dll com et cela fonctionne aussi très bien, je vois pas ou est mon erreur. donc mon exe que j'ai créé j'ai ces fichier lib dans mon setting :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    ernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib


    et dans mon projet dll Win32 j'ai cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    s2_32.lib msvcrtd.lib ODKWin32.lib user32.lib libcmt.lib kernel32.lib advapi32.lib SocketComm.lib


    ?????? ?????? ??????
    Merci ??

  12. #12
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    En plus j'ai copié toutes ces librairie dans mon setting de mon Link et ça change rien

  13. #13
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Citation Envoyé par nicolashilaire
    as-tu correctement définit les méthodes dans ton .h comme étant externes ?
    as-tu seulement ce problème avec cette méthodes ou avec d'autres de la meme classe ?

  14. #14
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Avec les autre méthodes je n'ai aucun problème, dans mon fichiers .H que j'ai joint a mon project Dll Win32 je n'ai pas mis que mes methode sont exportable.

    Mais lorsque j'ai créé ma Dll exportable je l'ai bien fait. J'ai testé cette dll et les méthodes que j'utilise ici fonction même CreateSocket.

  15. #15
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Comment as-tu défini CreateSocket dans ton .h ?

  16. #16
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Je l'ai défini ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	bool CreateSocket(LPCTSTR strServiceName, int nProtocol, int nType, UINT uOptions = 0);
    et dans ma dll j'ai fais la même chose avec les fonction export qui vont bien

  17. #17
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par Jasmine
    Je l'ai défini ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	bool CreateSocket(LPCTSTR strServiceName, int nProtocol, int nType, UINT uOptions = 0);
    et dans ma dll j'ai fais la même chose avec les fonction export qui vont bien
    Tiens nico ça te rappelle rien ça ?
    Il y a pas déjà eu un post récemment qui parlait du même problème avec la même librairie ?

  18. #18
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Oui j'avais posté un sujet sur cette même fonction , mais là c'est un autre problème, le problème est différents, pourquoi ça pose problème d'avoir différent soucis sur un même sujet ??

  19. #19
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par Jasmine
    Oui j'avais posté un sujet sur cette même fonction , mais là c'est un autre problème, le problème est différents, pourquoi ça pose problème d'avoir différent soucis sur un même sujet ??
    Non non pas du tout Juste pour savoir si on pouvait se servir des réponses du thread précédent

  20. #20
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Je me rappelle effectivement, y avait eu un abandon à la fin ...

    ce qui m'étonne c'est que dans tes autres projets ca fonctionne mais pas dans celui ci...
    c'est pas un probleme de convention d'appel (_fastcall, stdcall, cdecl*) ?? t'as essayé de changer ca ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/09/2009, 13h26
  2. Problème socket raw ? bizarre :~
    Par MonsieurAk dans le forum Windows
    Réponses: 2
    Dernier message: 12/07/2005, 14h12
  3. Problème de link...
    Par Royd938 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/09/2004, 17h33
  4. C/asm : problème pour link
    Par SteelBox dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 06/04/2004, 23h03
  5. Problème de link avec Borland C++ 5.5
    Par gelam dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 24/11/2003, 16h45

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