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 portage d'un source créé sous Console vers MFC SDI


Sujet :

MFC

  1. #1
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 437
    Points
    1 437
    Par défaut Problème de portage d'un source créé sous Console vers MFC SDI
    Bonjour !

    J'ai testé en premier sous une application console un fichier H et CPP pour test, ça marche et il n'y a aucune erreur de compilation ni de warning.
    Mais que je transporte les deux fichiers sur une nouvelle application MFC en interface sur une seule fenêtre (SDI), il se produit plusieurs erreurs (pour mon cas, c'est au nombre de 94) même si j'ai mis l'inclusion de "stdafx.h", voici quelques unes de ces erreurs:
    sur la ligne 59:
    d:\graphe gui\graph.h(59) : error C2143: syntax error : missing ';' before '*'
    d:\graphe gui\graph.h(59) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    d:\graphe gui\graph.h(59) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    d:\graphe gui\graph.h(59) : warning C4183: 'findArc': missing return type; assumed to be a member function returning 'int'

    qui contient le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	Arc * findArc(const std::string& StartNodeLabel, const std::string& EndNodeLabel);
    Or, tout est OK, la classe Arc est bien déclarée et définie.

    Je l'ai testé sur VS 2003 mais ça bogue trop même pour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vector<vector<int>> tab(5, vector <int>(6));
    où il faut mettre un espace pour que ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vector<vector<int> > tab(5, vector <int>(6));
    , cette version est loin d'être fiable (bizarre) donc je suis passé à VS 2005 et le nombre d'erreurs est descendu mais encore au nombre de 94.

    Voici une partie du code (le fichier H) qui ne contient aucune erreur syntaxique ni sémantique, je ne sais plus quel est le problème, peut-être une manque des include puisqu'on travaille sous MFC, faut-il ajouter des directives #if, #endif ?
    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
    63
    64
    65
    66
    67
    68
    69
    #include "stdafx.h"
     
    #include<iostream>
    #include<list>
    #include<vector>
    #include<string>
    #include<algorithm>
     
    using namespace std;
     
    class SquareMatrix : protected std::vector<int>
    {
    public:
    	SquareMatrix(unsigned int _n=0);
    	int& operator ()(int i, int j);
    	int operator ()(int i, int j) const;
    	SquareMatrix operator +(const SquareMatrix& A) const;
    	SquareMatrix operator *(const SquareMatrix& A) const;
    private:
    	unsigned int n;
    };
     
    class Node
    {
    public:
    	Node(const std::string& _Label);
    	std::string getLabel() const;
    	void addNextNode(Node * _NextNode);
    	void addPreviousNode(Node * _NextNode);
    	void explore(std::list<Node *>& ReachableNodes);
    	friend class OrientedGraph;
    private:
    	std::string Label;
    	std::list<Node *> PreviousNodes;
    	std::list<Node *> NextNodes;
    };
     
    class Arc
    {
    public:
    	Arc(Node * _StartNode, Node * _EndNode, double _Weight=1.0);
    	Node * getStartNode() const;
    	Node * getEndNode() const;
    	double getWeight() const;
    private:
    	Node * StartNode;
    	Node * EndNode;
    	double Weight;
    };
     
    class OrientedGraph
    {
    public:
    	OrientedGraph():UpToDate(false){}
    	~OrientedGraph() {}
    	bool addNode(const std::string& NewNodeLabel);
    	bool addArc(const std::string& StartNodeLabel, const std::string& EndNodeLabel,double Weight=1.0);
    	Node * findNode(const std::string& NodeLabel);
    	Arc * findArc(const std::string& StartNodeLabel, const std::string& EndNodeLabel);
    	void computeTransitiveClosure();
    	void getReachableNodesFrom(const std::string& SourceNodeLabel,std::list<Node *>& ReachableNodes);
    	bool isStronglyConnected();
    	void getMaximalStronglyConnectedComponentFrom(const std::string& SourceNodeLabel,std::list<Node *>& ConnectedNodes);
    private:
    	std::list<Node *> NodesList;
    	std::list<Arc *> ArcsList;
    	std::vector<SquareMatrix> A;
    	bool UpToDate;
    };
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  2. #2
    Lucas Panny
    Invité(e)
    Par défaut
    Salut everybody !

    Il m'est arrivé aussi la même chose randriano ! Donc, désolé je ne peux pas t'aider, j'attends aussi les réponses à ton problème.
    Il est bizarre que sous Visual C++, un code qui fonctionne en console ne marche plus en MFC. Est-ce un bug de VS 2005 ?

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    vector<vector<int> > tab(5, vector <int>(6));
    l'espace entre les deux supérieurs est standard en c++.
    pour le reste :
    j'éviterais de placer stdafx.h dans le .h de la classe (plutôt dans le source),
    et je rajouterai un pragma once pour éviter la réinclusion..

  4. #4
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 437
    Points
    1 437
    Par défaut
    Citation Envoyé par farscape Voir le message
    salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    vector<vector<int> > tab(5, vector <int>(6));
    l'espace entre les deux supérieurs est standard en c++.
    pour le reste :
    j'éviterais de placer stdafx.h dans le .h de la classe (plutôt dans le source),
    et je rajouterai un pragma once pour éviter la réinclusion..
    Ca marche sans espace sous VS 2005, le standard a changé ?

    J'ai refais juste après mon 1er post de créer une classe en faisant un clic droit sur l'arborescence des classes donc #pragma once pour le fichier H et #include "StdAfx.h" dans le CPP, mais ça marche pas ! Les même erreurs !

    Avez-vous vu les erreurs annoncées par l'éditeur, bizarre non ! Ca compile sans error ni warning sous console puis je le transporte en MFC et ça fait des erreurs de plus de 90.

    Voici donc le code complet pour m'être plus clair.
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    #pragma once
     
    #include<iostream>
    #include<list>
    #include<vector>
    #include<string>
    #include<algorithm>
     
    using namespace std;
     
    class SquareMatrix : protected std::vector<int>
    {
    public:
    	SquareMatrix(unsigned int _n=0);
    	int& operator ()(int i, int j);
    	int operator ()(int i, int j) const;
    	SquareMatrix operator +(const SquareMatrix& A) const;
    	SquareMatrix operator *(const SquareMatrix& A) const;
    private:
    	unsigned int n;
    };
     
    class Node
    {
    public:
    	Node(const std::string& _Label);
    	std::string getLabel() const;
    	void addNextNode(Node* _NextNode);
    	void addPreviousNode(Node* _NextNode);
    	void explore(std::list<Node*>& ReachableNodes);
    	friend class OrientedGraph;
    private:
    	std::string Label;
    	std::list<Node*> PreviousNodes;
    	std::list<Node*> NextNodes;
    };
     
    class Arc
    {
    public:
    	Arc(Node* _StartNode, Node* _EndNode, double _Weight=1.0);
    	Node* getStartNode() const;
    	Node* getEndNode() const;
    	double getWeight() const;
    private:
    	Node* StartNode;
    	Node* EndNode;
    	double Weight;
    };
     
    class OrientedGraph
    {
    public:
    	OrientedGraph():UpToDate(false){}
    	~OrientedGraph() {}
    	bool addNode(const std::string& NewNodeLabel);
    	bool addArc(const std::string& StartNodeLabel, const std::string& EndNodeLabel,double Weight=1.0);
    	Node* findNode(const std::string& NodeLabel);
    	Arc* findArc(const std::string& StartNodeLabel, const std::string& EndNodeLabel);
    	void computeTransitiveClosure();
    	void getReachableNodesFrom(const std::string& SourceNodeLabel,std::list<Node*>& ReachableNodes);
    	BOOL isStronglyConnected();
    	void getMaximalStronglyConnectedComponentFrom(const std::string& SourceNodeLabel,std::list<Node*>& ConnectedNodes);
    private:
    	std::list<Node * > NodesList;
    	std::list<Arc * > ArcsList;
    	std::vector<SquareMatrix> A;
    	bool UpToDate;
    };
    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
    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    #include "StdAfx.h"
    #include "orientedgraph.h"
     
    SquareMatrix::SquareMatrix(unsigned int _n):std::vector<int>(_n*_n, 0), n(_n){}
    int& SquareMatrix::operator ()(int i, int j) { return (*this)[ (i-1)*n + j - 1 ]; }
    int SquareMatrix::operator ()(int i, int j) const { return (*this)[ (i-1)*n + j - 1 ]; }
    SquareMatrix SquareMatrix::operator +(const SquareMatrix& A) const {
    	SquareMatrix B(n);
    	//transform() une fonction de algorithm
    	std::transform(begin(), end(), A.begin(), B.begin(), std::plus<int>());
    	return B;
    }
     
    SquareMatrix SquareMatrix::operator *(const SquareMatrix& A) const {
    	SquareMatrix B(n);
    	for (unsigned long i=1;i<=n;i++)
    		for (unsigned long j=1;j<=n;j++)
    			for (unsigned long k=1;k<=n;k++)
    				B(i,j) += (*this)(i,k)*A(k,j);
    	//Ajout de ma part
    	return B;
    }
     
    void Node::addNextNode(Node* _NextNode) { NextNodes.push_back(_NextNode);}
    void Node::addPreviousNode(Node* _NextNode) {PreviousNodes.push_back(_NextNode);}
    void explore(std::list<Node*>& ReachableNodes) { /* A COMPLETER */}
    Node::Node(const std::string& _Label) :Label(_Label){}
    std::string Node::getLabel() const { return Label; }
     
    Arc::Arc(Node* _StartNode, Node* _EndNode, double _Weight):StartNode(_StartNode), EndNode(_EndNode), Weight(_Weight){}
    Node* Arc::getStartNode() const {
    	return StartNode;
    }
    Node* Arc::getEndNode() const {return EndNode;}
    double Arc::getWeight() const {return Weight;}
     
    Node* OrientedGraph::findNode(const std::string& NodeLabel) {
    	Node* ptr = NULL;
    	bool Found = false;
    	std::list<Node*>::iterator i = NodesList.begin(), e = NodesList.end();
    	while ( !Found && i!=e ) {
    		if ( (*i)->getLabel() == NodeLabel ) { ptr = *i; Found = true; }
    		i++;
    	}
    	return ptr;
    }
     
    Arc* OrientedGraph::findArc(const std::string& StartNodeLabel, const std::string& EndNodeLabel) {
    	Arc* ptr = NULL;
    	bool Found = false;
    	std::list<Arc*>::iterator i = ArcsList.begin(), e = ArcsList.end();
    	while ( !Found && i!=e ) {
    		if ( ((*i)->getStartNode()->getLabel() == StartNodeLabel) &&
    			((*i)->getEndNode()->getLabel() == EndNodeLabel) )
    		{
    			ptr = *i; Found = true;
    		}
    		i++;
    	}
    	return ptr;
    }
     
    bool OrientedGraph::addNode(const std::string& NewNodeLabel) {
    	if (findNode(NewNodeLabel)) {
    		std::cerr << NewNodeLabel << " : already used !" << std::endl; return false;
    	}
    	NodesList.push_back(new Node(NewNodeLabel));
    	UpToDate = false;
    	return true;
    }
     
    bool OrientedGraph::addArc(const std::string& StartNodeLabel, const std::string& EndNodeLabel, double Weight) {
    	Node* StartNode = findNode(StartNodeLabel);
    	if (StartNode) {
    		Node* EndNode = findNode(EndNodeLabel);
    		if (EndNode) {
    			ArcsList.push_back(new Arc(StartNode, EndNode, Weight));
    			StartNode->addNextNode(EndNode);
    			EndNode->addPreviousNode(StartNode);
    			UpToDate = false;
    			return true;
    		}
    		else {
    			std::cerr << EndNodeLabel << " : not found !" << std::endl; 
    			return false;
    		}
    	}
    	else {
    		std::cerr << StartNodeLabel << " : not found !" << std::endl; 
    		return false;
    	}
    }
    void OrientedGraph::computeTransitiveClosure() { 
    	return;
    }
    void OrientedGraph::getReachableNodesFrom(const std::string& SourceNodeLabel,std::list<Node*>& ReachableNodes) {
    	return;
    }
    BOOL OrientedGraph::isStronglyConnected() { 
    	return true;
    }
    void OrientedGraph::getMaximalStronglyConnectedComponentFrom(const std::string& SourceNodeLabel,std::list<Node*>& ConnectedNodes) {
    	return;
    }
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  5. #5
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 437
    Points
    1 437
    Par défaut
    Bonjour !

    J'interpèle encore tous ceux qui ont réponse à mon problème !
    Pourquoi une classe qui fonctionnait très bien sous console puis portée sous MFC avec ajout de #pragma once et stdafx.h ne marche plus avec des erreurs bizarres indiquées par le compilateur (voir le code source posté précédemment).
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    il y a peut être collision avec des noms liés aux classes MFC .
    je pense a ta classe Arc et Node dont les noms sont beaucoup trop génériques....
    tu as essayé de mettre tout ça dans un espace de nom ?
    sinon je ferais un essai ce matin avec tes classes pour voir .

    [edit]
    je confirme Arc existe c'est une structure.
    [edit]

  7. #7
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    Effectivement le portage est problématique. Je pratique pour ma part la politique suivante qui est de remplacer mes classes par des classes MFC. C'est beaucoup de travail mais finalement ça fonctionne. Par exemple utilise des CString au lieu de std::string ou des CArray au lieu de vector. Il faut un peu explorer la MFC, je sais c'est chiant mais j'ai obtenu d'assez bon résultat comme ça
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par Gouyon Voir le message
    Effectivement le portage est problématique. Je pratique pour ma part la politique suivante qui est de remplacer mes classes par des classes MFC. C'est beaucoup de travail mais finalement ça fonctionne. Par exemple utilise des CString au lieu de std::string ou des CArray au lieu de vector. Il faut un peu explorer la MFC, je sais c'est chiant mais j'ai obtenu d'assez bon résultat comme ça
    salut,
    ce n'est pas obligatoire ..., j'ai des projets MFC qui utilisent des string et vector et d'autres éléments de la stl.

  9. #9
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par farscape Voir le message
    salut,
    ce n'est pas obligatoire ..., j'ai des projets MFC qui utilisent des string et vector et d'autres éléments de la stl.
    Tout à fait ce n'est absolument pas obligatoire. C'est simplement une solution que j'ai testée et qui marche plutôt bien.
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  10. #10
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 437
    Points
    1 437
    Par défaut
    Salut,

    Je vous indique le lien de tout le programme avec fichier solution Visual 2005 pour que vous puissiez tous voir les 63 erreurs rencontrées sous MFC.
    Je rappelle que les même classes utilisées sous une application console ne génère aucunes erreurs !

    ftp://ftp-developpez.com/randriano/GraphGUI.zip

    Je vais voir entre temps le changement des string en CString et vector en CArray et pour std::list ???? Mais je me pose aussi la question pourquoi la STL ne marcherait pas sous MFC, la STL est puissante non
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  11. #11
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par farscape Voir le message
    salut,
    il y a peut être collision avec des noms liés aux classes MFC .
    je pense a ta classe Arc et Node dont les noms sont beaucoup trop génériques....
    tu as essayé de mettre tout ça dans un espace de nom ?
    sinon je ferais un essai ce matin avec tes classes pour voir .

    [edit]
    je confirme Arc existe c'est une structure.
    [edit]
    mais non ,mais non, ne change rien ,j'utilise la stl dans mes programmes MFC sans problèmes .
    par contre as tu lu ma remarque précédente ?

  12. #12
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    donc c'est bien le problème que j'ai évoqué dans mon post,
    ta classe Arc rentre en collision avec la structure du même nom.
    j'ai modifié ton projet ,rajouter un espace de nom Gui à ta classe Arc (pour l'essai).
    modifié deux trois trucs notamment sur la comparaison de string const qui ne passe à la compilation sous vc2005.
    rajouter des headers pour cerr.
    d'ailleurs dans un projet gui MFC il faudra s'en passer ou prendre une autre solution...
    donc je le redis il n'y a pas de problèmes avec l'utilisation des MFC et de la stl.
    Fichiers attachés Fichiers attachés

  13. #13
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 437
    Points
    1 437
    Par défaut
    Bonjour,

    En effet, tout mon problème est issu d'un conflit de nom, Arc est bel et bien un nom de structure existant.
    J'ai alors renommé ma classe Arc en CArc ! Faut faire aussi attention car CNode est une classe qui existe donc j'ai maintenu le nom Node pour cette classe.

    Thanks a lot à vous tous chers amis !

    Verdict: on peut utiliser sans problème les bibliothèques STL dans une interface graphique MFC, faut pas s'en priver ?
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  14. #14
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par randriano Voir le message
    Bonjour,

    En effet, tout mon problème est issu d'un conflit de nom, Arc est bel et bien un nom de structure existant.
    J'ai alors renommé ma classe Arc en CArc ! Faut faire aussi attention car CNode est une classe qui existe donc j'ai maintenu le nom Node pour cette classe.

    Thanks a lot à vous tous chers amis !

    Verdict: on peut utiliser sans problème les bibliothèques STL dans une interface graphique MFC, faut pas s'en priver ?
    je ne vois aucune raisons de s'en priver, j'utilise la STL dans tous mes projets et je commence même avec vc2005 a utiliser Boost.

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

Discussions similaires

  1. Le portage du moteur Source sous Linux : les leçons retenues par Valve
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 10/10/2013, 21h43
  2. problème de source ODBC sous win 2008 web server
    Par mickamar dans le forum MySQL
    Réponses: 1
    Dernier message: 08/06/2010, 10h41
  3. Problème avec une librairie open source sous myEclipse
    Par scaryfan dans le forum EDI et Outils pour Java
    Réponses: 0
    Dernier message: 01/09/2009, 20h40
  4. Problème de source de sous formulaire
    Par jessy212 dans le forum Access
    Réponses: 3
    Dernier message: 25/08/2006, 14h03
  5. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18

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