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 :

réception série et maj de l'interface utilisateur


Sujet :

MFC

  1. #61
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Bon, j'ai pas compris ton message, je vais chercher un peu mais déjà je sais pas ce que veux dire un truc du genre :
    Je vais chercher on verra bien.

    faux, quand le processus s'arrête et non la fenêtre fermée ... (peut être que la fenêtre fermée induit l'arrêt du processus ... )
    T'as pas l'impression de jouer sur les mots la? En tout cas oui, quand je ferme ma fenêtre, le processus se termine.

    En tout cas, merci ça fait plaisir d'avoir des réponses ^^ a+

  2. #62
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Pour être précis, le second thread est tué quand le thread principal se termine (parce qu'il ne se termine pas par ExitThread()).

    Et la fermeture de la boîte de dialogue entraine la fin de la boucle de messages du thread principal, qui entraine la fin du thread principal lui-même.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #63
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Bah merci pour ta réponse, c'est vrai que c'est plus précis que
    En tout cas oui, quand je ferme ma fenêtre, le processus se termine.

  4. #64
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Salut tout le monde.
    Je pense que je vais trouver en ligne ce qu'il me faut pour créer cette classe mais je mets la déclaration ou? Pas dans le .cpp je pense, plutôt dans un .h, non?

    Et j'ai 7 .h dont 2 qui me paraissent susceptibles d'être les bons, Fenetre1.h et Fenetre1Dlg.h, je dois le mettre dans lequel?

    Je te mets le code de ces 2 .h si ça peut aider à répondre :

    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
     
    // Fenetre 1.h : main header file for the FENETRE 1 application
    //
     
    #if !defined(AFX_FENETRE1_H__B99889DB_C988_4510_87FE_9AB5356BF51C__INCLUDED_)
    #define AFX_FENETRE1_H__B99889DB_C988_4510_87FE_9AB5356BF51C__INCLUDED_
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
    #ifndef __AFXWIN_H__
    	#error include 'stdafx.h' before including this file for PCH
    #endif
     
    #include "resource.h"		// main symbols
     
    /////////////////////////////////////////////////////////////////////////////
    // CFenetre1App:
    // See Fenetre 1.cpp for the implementation of this class
    //
     
    class CFenetre1App : public CWinApp
    {
    public:
    	CFenetre1App();
     
    // Overrides
    	// ClassWizard generated virtual function overrides
    	//{{AFX_VIRTUAL(CFenetre1App)
    	public:
    	virtual BOOL InitInstance();
    	//}}AFX_VIRTUAL
     
    // Implementation
     
    	//{{AFX_MSG(CFenetre1App)
    		// NOTE - the ClassWizard will add and remove member functions here.
    		//    DO NOT EDIT what you see in these blocks of generated code !
    	//}}AFX_MSG
    	DECLARE_MESSAGE_MAP()
    };
     
     
    /////////////////////////////////////////////////////////////////////////////
     
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
     
    #endif // !defined(AFX_FENETRE1_H__B99889DB_C988_4510_87FE_9AB5356BF51C__INCLUDED_)
    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
     
    // Fenetre 1Dlg.h : header file
    //
     
    #if !defined(AFX_FENETRE1DLG_H__72AE1160_5639_400E_8E40_87DB8B00238F__INCLUDED_)
    #define AFX_FENETRE1DLG_H__72AE1160_5639_400E_8E40_87DB8B00238F__INCLUDED_
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
    /////////////////////////////////////////////////////////////////////////////
    // CFenetre1Dlg dialog
     
     
     
     
    class CFenetre1Dlg : public CDialog
    {
    // Construction
    public:
    	CFenetre1Dlg(CWnd* pParent = NULL);	// standard constructor
     
     
     
    // Dialog Data
    	//{{AFX_DATA(CFenetre1Dlg)
    	enum { IDD = IDD_FENETRE1_DIALOG };
    	BOOL	m_activer;
    	int		m_heurefermeture;
    	int		m_minutefermeture;
    	int		m_heureouverture;
    	int		m_minuteouverture;
    	int		m_heure;
    	int		m_minute;
    	//}}AFX_DATA
     
    	// ClassWizard generated virtual function overrides
    	//{{AFX_VIRTUAL(CFenetre1Dlg)
    	protected:
    	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
    	//}}AFX_VIRTUAL
     
    // Implementation
     
    protected:
    	HICON m_hIcon;
     
    	// Generated message map functions
    	//{{AFX_MSG(CFenetre1Dlg)
    	virtual BOOL OnInitDialog();
    	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    	afx_msg void OnPaint();
    	afx_msg HCURSOR OnQueryDragIcon();
    	virtual void OnCancel();
    	afx_msg void Onapropos();
    	afx_msg void OnCheck1();
    	afx_msg void OnButton2();
    	afx_msg void OnButton3();
    	afx_msg void Onhautheurefermeture();
    	afx_msg void Onbahheurefermeture();
    	afx_msg void Onhautminutefermeture();
    	afx_msg void Onhautminuteouverture();
    	afx_msg void Onbasminuteouverture();
    	afx_msg void Onhautheureouverture();
    	afx_msg void Onbasheureouverture();
    	afx_msg void Onbasfermeturemin();
    	afx_msg void OnOuvrirelectrovanne();
    	afx_msg void OnFermerelectrovanne();
    	afx_msg void Onheureouvertureh();
    	afx_msg void Onheureouverturemin();
    	afx_msg void Onheurefermetureh();
    	afx_msg void Onheurefermeturemin();
    	afx_msg void OnChangeEdit5();
    	afx_msg void OnChangeEdit6();
    	afx_msg void OnButton9();
    	//}}AFX_MSG
    	DECLARE_MESSAGE_MAP()
    };
     
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
     
    #endif // !defined(AFX_FENETRE1DLG_H__72AE1160_5639_400E_8E40_87DB8B00238F__INCLUDED_)

    Voilà, merci pour tout ^^

    EDIT:

    Alors, je viens de tester quelques petites choses, déjà j'ai déclaré de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class boucle :  public CFenetre1Dlg
    {
    };
    Déjà, si c'est pas ça, évidemment tout ce que je vais dire ensuite ne veux rien dire.
    Bon, vous remarquerez que j'ai pas mis les "::" mais seulement ":" parce que sinon il y avait quelques erreurs à la compilation, quelqu'un sait pourquoi?
    Je les mets vite fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    error C2653: 'boucle' : is not a class or namespace name
    error C2589: 'public' : illegal token on right side of '::'
    error C2143: syntax error : missing ';' before '::'
    error C2447: missing function header (old-style formal list?)
    La dernière, je sais même pas ce qu'elle veut dire.
    Bon ensuite, je pense que ça va dans Fenetre1Dlg parce que dans l'autre, il aime pas à la compilation.

    Merci d'avance.

    PS : si c'est pour me démonter en me disant que ce que je fais c'est du n'importe quoi sans même apporter un peu d'aide, vous êtes pas obligés de vous forcer. Bonne journée à tous

    EDIT 2 : Je l'ai pas dit mais j'ai toujours l'erreur avec UpdateData, undeclared identifier.

  5. #65
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Aïe, je viens de lire un papier et je me rend compte que ce que j'ai fait, c'est pas ce qu'il faut. La, dites-moi si je me trompe, j'ai en quelque sorte fait hériter boucle de Fenetre1Dlg. Alors qu'il faut que boucle soit membre de Fenetre1Dlg. C'est bien ça? Si quelqu'un pouvait m'expliquer la nuance et me dire comment ça se répercute sur le code. Merci beaucoup^^

  6. #66
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Bon, j'ai relu pour la 10ème fois un tuto sur les classes et en fait je me suis complètement planté je déclare boucle comme une classe alors que c'est une fonction.

    Donc j'ai changé voilà ce que j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class CFenetre1Dlg : public CDialog
    {
    // Construction
    public:
    	CFenetre1Dlg(CWnd* pParent = NULL);	// standard constructor
     
    void* boucle(void*);
    ...
    ...
    ...
    };
    Mais bon, j'ai encore une erreur^^. Et oui, ça serait trop beau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error C2664: 'pthread_create' : cannot convert parameter 3 from 'void *(void *)' to 'void *(__cdecl *)(void *)'
    Ca renvoie sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pthread_create(&thread, NULL,CFenetre1Dlg::boucle, NULL);
    Donc dans l'appel de ma fonction par le thread.

    Si quelqu'un sait ce qu'il se passe, merci à lui de sa future réponse.

  7. #67
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Bon, j'ai lu un truc sur les conventions d'appel, je pense que c'est de ça dont il est question:
    Du coup j'ai changé mon code, voilà ma déclaration de la fonction dans la classe CFenetre1Dlg:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class CFenetre1Dlg : public CDialog
    {
    // Construction
    public:
    	CFenetre1Dlg(CWnd* pParent = NULL);	// standard constructor
     
    void *__cdecl boucle(void*);
    [...]
    };
    Ma fonction dans le main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	void* CFenetre1Dlg:: boucle(void*)
    {
    [...]//ma fonction boucle
    };
    (J'ai lu qu'il n'y avait pas besoin de réécrire __cdecl dans l'écriture de la fonction)

    Et enfin, l'appel à ma fonction dans le thread : (c'est la que ça coince)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pthread_create(&thread, NULL, __cdecl CFenetre1Dlg:: boucle, NULL);
    J'ai l'erreur suivante :
    error C2059: syntax error : '__cdecl'
    Donc voilà, peut-être y a-t'il un __cdecl en trop ou qui manque quelque part.

    Si quelqu'un pouvait m'aider, merci beaucoup à lui.

  8. #68
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    pthread_create exige une fonction libre ou une fonction membre statique.
    Tu ne peux pas utiliser une fonction membre non-statique avec.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #69
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Bon, déjà, elle peut pas être libre sinon mon UpdateData marchera jamais.

    Comment je fais pour la rendre statique? Y a un mot clé à utiliser dans la déclaration?

    Merci à toi.

  10. #70
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Bon, j'ai juste declaré comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static void *__cdecl boucle(void*);
    dans mon .h, j'ai plus l'erreur precédente mais une autre, je la mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     error C2352: 'CWnd::UpdateData' : illegal call of non-static member function
    see declaration of 'UpdateData'
    Voilà, un problème de plus, je voulais faire de la programmation pourquoi pas mon futur métier, je crois que je vais revoir mes choix...

  11. #71
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    C'est à ça que sert le dernier paramètre de pthread_create().
    Tu dois faire une fonction statique qui reçoit un pointeur vers l'objet, et appelle une fonction non-statique de celui-ci.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #72
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Ouah, attends, là t'as été un peu vite pour le novice que je suis.

    Donc je dois changer le dernier paramètre de NULL en autre chose.

    Quand tu dis "Tu dois faire une fonction statique qui reçoit un pointeur vers l'objet", le pointeur vers l'objet, je le mets en paramètre de ma fonction? (qui est la fonction boucle dans mon cas)

    Et l'objet en question c'est quoi?

    "et appelle une fonction non-statique de celui-ci." , la tu parles de l'appel. Comment je peux appeler une fonction non-statique alors que juste avant il faut que je fasse une fonction statique? C'est deux fonctions différentes?

    Merci de m'éclairer sur ces quelques points. Et désolé d'être si mauvais, je sais que ça doit être chiant pour vous.

  13. #73
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    C'est un "truc" classique pour le multithread:
    Code C++ : 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
    class CFenetre1Dlg : public CDialog
    {
    // Construction
    public:
    	CFenetre1Dlg(CWnd* pParent = NULL);	// standard constructor
     
    	void * boucle();
    	static void * __cdecl Sboucle(void*);
    [...]
    };
     
    void * CFenetre1Dlg::SBoucle(void *pv)
    {
    	CFenetre1Dlg * pObj = static_cast< CFenetre1Dlg * >(pv);
    	pObj->boucle();
    }
     
    [...]
    CFenetre1Dlg * pObj = ...
    pthread_create(&thread, NULL, CFenetre1Dlg::Sboucle, pObj);
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #74
    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
    Par défaut
    On en est encore la dans ce post ?,
    Tout a déjà été dit , des liens ont été donnés sur ces sujets dans la faq .
    il faudrait prendre le temps de lire correctement les éléments qui te sont fournis.
    Et peut être retourner étudier les bases du C++.

  15. #75
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Bon déjà merci beaucoup à toi Medinoc. J'ai fait tout comme t'as dit, il me dit plus rien sur UdateData par contre j'ai des nouvelles erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    C:\Program Files\Microsoft Visual Studio\MyProjects\Fenetre 1\Fenetre 1Dlg.cpp(35) : error C2039: 'SBoucle' : is not a member of 'CFenetre1Dlg'
            C:\Program Files\Microsoft Visual Studio\MyProjects\Fenetre 1\Fenetre 1Dlg.h(17) : see declaration of 'CFenetre1Dlg'
    C:\Program Files\Microsoft Visual Studio\MyProjects\Fenetre 1\Fenetre 1Dlg.cpp(257) : error C2664: 'pthread_create' : cannot convert parameter 3 from 'void *(void)' to 'void *(__cdecl *)(void *)'
            None of the functions with this name in scope match the target type
    C:\Program Files\Microsoft Visual Studio\MyProjects\Fenetre 1\Fenetre 1Dlg.cpp(636) : error C2511: 'boucle' : overloaded member function 'void *(void *)' not found in 'CFenetre1Dlg'
            C:\Program Files\Microsoft Visual Studio\MyProjects\Fenetre 1\Fenetre 1Dlg.h(17) : see declaration of 'CFenetre1Dlg'
    Qu'est ce que j'ai mal fait?

  16. #76
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Comment t'es méchant, ya Medinoc qu'est gentil et qu'essaie de m'aider alors arrête de me dire que je suis nul, ça fait pas avancer le problème. Et la FAQ, j'ai vraiment du mal, pourtant j'arrête pas de lire des trucs, le problème est que chaque erreur en découvre une autre.

    J'ai juste besoin d'aide, juste avec la FAQ, c'est pas possible d'apprendre à programmer, vous vous en rendez pas compte parce que vous avez eu des cours en écoles ou je sais pas où et que du coup pour vous c'est de l'acquis. Pensez qu'on est pas tous développeur comme vous.

    Sur ce, une bonne fin de journée tout de même à tous.

  17. #77
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 224
    Par défaut
    Citation Envoyé par farscape Voir le message
    Et peut être retourner étudier les bases du C++.
    Il vaut mieux que tu passes 1 mois à reprendre les bases, faire des exercices en C++ et comprendre comment ca marche, puis en 1 semaine bouclé ton projet,

    Que faire ce que tu fais, c'est à dire copier/coller tout ce qu'on te dit sans comprendre ou tu dois le mettre, ce que ca fait exactement etc etc..

    Il faut que tu commences par les bases avant de vouloir faire qquechose de plus poussé.
    Le concept de thread n'est déjà pas trivial à comprendre pour un développeur basique, les MFC sont relativement tordues dans leur esprit, donc si en plus tu dois apprendre le C++, je comprends que tu n'y arrives pas.

    Apprend ce qu'est une classe, l'héritage, ce qu'une une méthode statique de classe. Achete toi un bouquin de C++ si il faut.

    Enfin c'est mon humble avis, après si tu préfères le faire à l'arrache en espérant qu'en suivant les statistiques des copier/coller aléatoires ca marche au bout d'un moment par chance, have fun, mais n'espère pas avoir mon aide.

  18. #78
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Ok, merci à tous et salut.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/10/2003, 16h32
  2. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27

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