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 linkage


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Par défaut Problème de linkage
    Bonjour à tous!

    voilà, je fait un projet, et ma partie consiste à faie la communication entre deux postes, par les sockets en udp.Ainsi, je fais la partie cliente sur visual c++, qui tournera sur windows xp.
    Malheureusement , j'arrive à le compiler, mais lorsque je fais "build",j'ai 2 erreurs:

    Linking...
    LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
    Debug/client.exe : fatal error LNK1120: 1 unresolved externals
    Error executing link.exe.

    Si vous pouviez m'aider, SVP!!!!
    Merci d'avance, phoenixia

  2. #2
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Il faut une fonction d'entrée WinMain pour un programme non console.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int main(void)
    {
        return 0;
    }
    devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int WINAPI WinMain (HINSTANCE Instance, HINSTANCE hPrevInstance, char* lpcmdLine, int nCmdShow)
    {
        return 0;
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Par défaut
    Merci beaucoup Mayti4 pour ton aide, j'ai testé et ça marche.
    Nelmo m'avait recomendé ce forum, et j'en suis pas déçu.

    c 'est super!!!

    Bye Bye

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    oublie pas le tag résolu

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Par défaut
    oups!!
    j'ai encore un problème!!
    maintenant, c'est au lancement de l'exe,il plante.

    SVP! vous pouvez m'aider?

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    c'est quoi qu'il fait quand il plante ? (erreur ,ou ca ?) si ton code est pas long poste le ! sinon poste un bout de code ou ca plante

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Par défaut
    en fait il me renvoie une erreur windows "voulez vous envoyer le rapport d'erreur?"
    Sinon, mon code est en c++, donc y a le fichier .h, le fichier de définitions des fonctions, et mon programme test.
    Code:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    //liste des inclusions
    #include "srccom.h"
    #pragma comment(lib, "ws2_32.lib")
     
     
    int WINAPI WinMain (HINSTANCE Instance, HINSTANCE hPrevInstance, char* lpcmdLine, int nCmdShow)
    {
     
    WSADATA WSAData;
    WSAStartup(MAKEWORD(2,0), &WSAData);
     
    printf("début du programme\n");
     
    //liste des variables
    Client objet;
    char* comd='\0';
    char * nameFic='\0';
    char* BufRecept='\0';
    char* BufEnvoi="coucou";
     
    //appel de la fonction envoi des données          
    objet.EnvoiMessg(comd,nameFic,BufEnvoi);
     
    objet.RecoitMessg(BufRecept);
     
     
     
    printf("fin du programme\n");
     
    WSACleanup();
     
    return 0;
     
    }

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Par défaut
    là j'y ai mis que le progamme test
    Voilà.

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    est ce que tu vois ca:
    début du programme
    dans ta console ou pas ? est ce que tu vois le est ce que tu sais debugger un programme ou pas ?

  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
    Par défaut
    Citation Envoyé par hiko-seijuro
    est ce que tu vois ca: dans ta console ou pas ? est ce que tu vois le est ce que tu sais debugger un programme ou pas ?
    quelle console ? y a surement pas de console, vu que le programme compile avec un WinMain, c'est que le subsystem doit etre à Windows et pas console.

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    euh peut être j'ai aps fait gaffe en fait j'ai juste vu le printf

    ah vi en effet bon bah (suicide assisté par ordinateur)

  12. #12
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    //liste des variables
    Client objet;
    char* comd='\0';
    char * nameFic='\0';
    char* BufRecept='\0';
    char* BufEnvoi="coucou";

    //appel de la fonction envoi des données
    objet.EnvoiMessg(comd,nameFic,BufEnvoi);

    objet.RecoitMessg(BufRecept);
    Tu passes des pointeurs non initialisés à EnvoiMessg.

    Tu écris dans un buffer non alloué dans RecoitMessg.

    Et c'est quoi ces ='\0' ?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Par défaut
    oui, je les initialise en mettant '\0' dans chaque chaine de caractère, car le compilo n'accepte pas l'initialisation avec memset:

    [CODE][//liste des variables
    Client objet;
    char* comd;
    char * nameFic;
    char* BufRecept;
    char* BufEnvoi;


    memset(BufEnvoi,'\0',sizeof(BufEnvoi));
    memset(BufRecept,'\0',sizeof(BufRecept));
    memset(comd,'\0',sizeof(comd));
    memset(nameFic,'\0',sizeof(nameFic));]

  14. #14
    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
    Par défaut
    c'est bien beau tout ca, mais les chaines ne sont pas allouées !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char *chaine = new char[255];

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Par défaut
    coucou,
    j'avoue que c'est la première fois que j'execute un programme sous windows.
    Donc j'ai initialisé mes chaines de caractères, et en lançant l'exe je n'ai plus le message d'erreur, mais en revanche rien ne se passe!!
    c'est normal??

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    euh je pense qu'il doit se passer quelquechose mais que tu ne le vois pas car ya pas de fenetre qui le montre

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2006
    Messages : 18
    Par défaut
    en fait oui c'est normal car je n'est rien mis dans mes fonctions d'envoi.
    Donc mon problème est résolu.
    Merci encore pour votre patience et votre aide.

    Bye Bye

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code::Blocks sous Linux problème de linkage
    Par Invité dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 22/03/2006, 16h54
  2. [Code::Blocks] Problème de linkage: "msvcrt.lib"
    Par skhay dans le forum Code::Blocks
    Réponses: 8
    Dernier message: 14/03/2006, 19h39
  3. Plusieurs fichiers => Problème de Linkage
    Par loic911 dans le forum C++
    Réponses: 6
    Dernier message: 01/03/2006, 00h11
  4. Problème de linkage avec la librairie DevIl
    Par Drannor dans le forum DevIL
    Réponses: 1
    Dernier message: 18/01/2006, 23h05
  5. Problème de linkage
    Par lvdnono dans le forum Windows
    Réponses: 4
    Dernier message: 15/06/2004, 12h32

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