Je souhaite "convertir" mon code C existant vers un programme en MFC.
J'utilise le port serie, mais j'ai besoin d'aller vérifier régulièrement (évenement)la présence de données.
comment puis-je faire cela?
J'espère que ma question est assez clair, en faite je n'arrive pas à voir comment je peux faire en MFC ce que je faisait dans un while en C...
D'avance merci, et n'hésitez pas à me demander plus de détails si ce n'est pas suffisant.
Salut,
Si tu dois aller voir "régulièrement" ton port série, tu peux regarder également du côté des fonctions SetTimer() et OnTimer() je pense.
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
J'ai regardé pour les threads, cela me semble être la bonne solution. Seulement je n'arrive pas à la mettre en oeuvre:
j'ai besoin de mettre à jour un champ EDIT depuis mon thread ( pour afficher les receptions/emissions RS232).
J'ai donc ajouté ma fonction thread à ma class Dlg (pour avoir accès à ma variable du champ EDIT), kle demarrage du thread se fait à l'appui d'un bouton.
j'ai cette erreur à la compilation :
error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
J'arrive à compiler avec une fonction static, mais si je veux utiliser ma variable du champ EDIT j'ai :
C:\M2M\test\GSM\GSMDlg.cpp(292) : error C2597: illegal reference to data member 'CGSMDlg::m_strConsole' in a static member function
et avec m_strConsole en static :
error LNK2001: unresolved external symbol "public: static class CString CGSMDlg::m_strConsole" (?m_strConsole@CGSMDlg@@2VCString@@A)
J'ai regardé pour les threads, cela me semble être la bonne solution. Seulement je n'arrive pas à la mettre en oeuvre:
j'ai besoin de mettre à jour un champ EDIT depuis mon thread ( pour afficher les receptions/emissions RS232).
J'ai donc ajouté ma fonction thread à ma class Dlg (pour avoir accès à ma variable du champ EDIT), le demarrage du thread se fait à l'appui d'un bouton.
j'ai cette erreur à la compilation :
error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
J'arrive à compiler avec une fonction static, mais si je veux utiliser ma variable du champ EDIT j'ai :
C:\M2M\test\GSM\GSMDlg.cpp(292) : error C2597: illegal reference to data member 'CGSMDlg::m_strConsole' in a static member function
et avec m_strConsole en static :
error LNK2001: unresolved external symbol "public: static class CString CGSMDlg::m_strConsole" (?m_strConsole@CGSMDlg@@2VCString@@A)
Yo,
Une fonction devant être indépendante à l'aide de thread doit être static et donc ne dois pas être implémentée dans une classe
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Avoir un pointeur sur la fenêtre contenant ton edit en variable globale...
Ou bien récupérer ton edit avec GetDlgItem()...
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage