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

C Discussion :

[Linker error] undefined reference to `WinMain@16'


Sujet :

C

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 57
    Points : 51
    Points
    51
    Par défaut [Linker error] undefined reference to `WinMain@16'
    Bonjour tous le monde,
    je suis entrain d'apprendre les sockets en langage C sous Windows avec lIDE Dev-C++ mon code est
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    #if defined (WIN32)
        #include <winsock2.h>
        typedef int socklen_t;
    #elif defined (linux)
        #include <sys/types.h>
        #include <sys/socket.h>
        #include <netinet/in.h>
        #include <arpa/inet.h>
        #include <unistd.h>
        #define INVALID_SOCKET -1
        #define SOCKET_ERROR -1
        #define closesocket(s) close(s)
        typedef int SOCKET;
        typedef struct sockaddr_in SOCKADDR_IN;
        typedef struct sockaddr SOCKADDR;
    #endif
     
    #include <stdio.h>
    #include <stdlib.h>
    #define PORT 23
     
     
     
    int main(void)
    {
        #if defined (WIN32)
            WSADATA WSAData;
            int erreur = WSAStartup(MAKEWORD(2,2), &WSAData);
        #else
            int erreur = 0;
        #endif
     
        SOCKET sock;
        SOCKADDR_IN sin;
     
        if(!erreur)
        {
            /* Création de la socket */
            sock = socket(AF_INET, SOCK_STREAM, 0);
     
            /* Configuration de la connexion */
            sin.sin_addr.s_addr = inet_addr("127.0.0.1");
            sin.sin_family = AF_INET;
            sin.sin_port = htons(PORT);
     
            /* Si le client arrive à se connecter */
            if(connect(sock, (SOCKADDR*)&sin, sizeof(sin)) != SOCKET_ERROR)
                printf("Connexion à %s sur le port %d\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));
            else
                printf("Impossible de se connecter\n");
     
            /* On ferme la socket précédemment ouverte */
            closesocket(sock);
     
            #if defined (WIN32)
                WSACleanup();
            #endif
        }
     
        return EXIT_SUCCESS;
    }
    l'erreur qui me dérange c'est
    [Linker error] undefined reference to `WinMain@16'
    ld returned 1 exit status
    C:\Dev-Cpp\Makefile.win [Build Error] [test2.exe] Error 1

    je rappele aussi que c'est un code client qui va se connecter à un code serveur

  2. #2
    Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 57
    Points : 51
    Points
    51
    Par défaut
    on m'a aidé a trouvé la solution en remplaçant int main() par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     int APIENTRY WinMain(HINSTANCE hInstance, 
                         HINSTANCE hPrevInstance, 
                         LPTSTR    lpCmdLine, 
                         int       nCmdShow)

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Points : 2 627
    Points
    2 627
    Par défaut
    Ca c'est le prototype pour une interface graphique win32 sous Windows, généralement.

    Le "vrai" proto de main c'est plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int main(int argc, char **argv);
    int main(int argc, char *argv[]);
    PS : int main(void) marche chez moi (Visual Studio Express)

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/07/2009, 18h44
  2. [Linker error] undefined reference to `WinMain@16'
    Par juju03 dans le forum Dev-C++
    Réponses: 5
    Dernier message: 12/10/2007, 00h19
  3. Réponses: 1
    Dernier message: 14/11/2006, 12h12
  4. [Linker error] undefined reference to...
    Par z980x dans le forum C++
    Réponses: 4
    Dernier message: 05/03/2006, 16h30
  5. [Linker error] undefined reference to 'IcmpSendEcho@'
    Par Xevious dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 29/12/2005, 17h45

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