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 :

unresolved external symbol _WinMain@16


Sujet :

C++

  1. #1
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut unresolved external symbol _WinMain@16
    Bonjour à tous ; quelqu'un peut-il construire le projet ci-dessous et me
    dire s'il obtient la même erreur au linkage ?
    premier fichier .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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #ifndef ARMES
    #define ARMES
     
    #include <iostream>
    using namespace std;
     
    class ArmeType
    {
    public :
    	virtual void utiliserArme(void) = 0;
    };
    // Classes dérivées
    class Poignard : public ArmeType
    {
    public :
    	virtual void utiliserArme(void) {cout<<"Le garde n'eut que le temps d'apercevoir l'eclat brillant de mon POIGNARD avant de s'ecrouler mort."<<endl;}
    };
    class ArcEtFleche : public ArmeType
    {
    public :
    	virtual void utiliserArme(void) {cout<<"D'un trait,la FLECHE parcouru la distance qui me separait de ma proie et toucha juste a la jambe gauche ..."<<endl;}
    };
    class Hache : public ArmeType
    {
    public :
    	virtual void utiliserArme(void) {cout<<"Un coup formidablement assene de ma HACHE fit voler en eclat son mince bouclier de bois !"<<endl;}
    };
    class Epee : public ArmeType
    {
    public :
    	virtual void utiliserArme(void) {cout<<"Je venais a peine d'embrocher 2 gardes avec mon EPEE que 3 autres apparurent sur le seuil de la porte d'entree."<<endl;}
    };
     
    #endif // ARMES
    second fichier .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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #ifndef PERSONNAGES
    #define PERSONNAGES
     
    #include "TypeArmes.h"
     
    class Personnage
    {
    protected :
    	ArmeType*	arme; // type d'arme en main
    public :
    	virtual void combattre(void) {};
    };
    // Classes dérivées
    class Assassin : public Personnage
    {
    public :
    	Assassin() {arme=new Poignard();}
    	virtual void combattre(void) {arme->utiliserArme();}
    };
    class Maraudeur : public Personnage
    {
    public :
    	Maraudeur() {arme=new ArcEtFleche();}
    	virtual void combattre(void) {arme->utiliserArme();}
    };
    class Guerrier : public Personnage
    {
    public :
    	Guerrier() {arme=new Hache();}
    	virtual void combattre(void) {arme->utiliserArme();}
    };
    class Corsaire : public Personnage
    {
    public :
    	Corsaire() {arme=new Epee();}
    	virtual void combattre(void) {arme->utiliserArme();}
    };
     
    #endif // PERSONNAGES
    fichier .cpp :
    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
    #include "Personnages.h"
     
    int main(void)
    {
    	// Création des personnages
    	Corsaire	peter;
    	Maraudeur	robin;
    	Assassin	landru;
    	Guerrier	conan;
    	// Ils attaquent
    	peter.combattre();
    	robin.combattre();
    	landru.combattre();
    	conan.combattre();
     
    	return 0;
    }
    Question subsidiaire : Pourquoi une référence à _WinMain@16 alors que c'est un projet Win32 ?
    Merci par avance ...

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 33
    Points : 35
    Points
    35
    Par défaut
    Ca devrait répondre à ta question : http://www.developpez.net/forums/d33...referenced-in/

    Pense à utiliser la fonction rechercher la prochaine fois.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 937
    Points
    4 937
    Par défaut
    si c'est un projet win32, il ne faut pas écrire un main, mais un WinMain, pour ton cas, essaie de créer un projet c++ vide (je suppose que tu es sous visual studio)

    _WinMain@16 c'est la signature de la fonction une fois compilée, le 16 n'a aucun rapport avec le 32 du win32.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 577
    Points
    218 577
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Lors de la création du projet, il faut choisir un projet Win32 Console, ou projet console et non un projet fenêtre (GUI?).

    Sinon, vous pouvez toujours modifier le projet même une fois créer. Il faut aller dans les options du projet (options du linker pour VS) et changer le type de projet en CONSOLE.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/04/2013, 09h47
  2. Réponses: 16
    Dernier message: 30/04/2009, 15h51
  3. PB de buil : unresolved external symbol
    Par dede92 dans le forum Windows
    Réponses: 8
    Dernier message: 13/12/2004, 11h21
  4. unresolved external symbol _IID_IDirectDraw7
    Par lvdnono dans le forum DirectX
    Réponses: 2
    Dernier message: 15/06/2004, 21h05
  5. Réponses: 4
    Dernier message: 23/04/2004, 16h06

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