Tout est directement mis dans le main (je suis très débutant), mais si je met une message box tout en haut de mon main, il me l'ouvre. J'ai donc descendu la message box de ligne en ligne pour voir ou ça coinçait : il s'avère qu'au moment ou je configure mon COM c'est a dire :
Si je place une message box au dessus du if de configuration, la message box apparait, si je le place en dessous, elle n'apparait plus.
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 int nId; nId=3; /* variables locales */ char szCOM[16]; /* construction du nom du port, tentative d'ouverture */ sprintf(szCOM, "COM%d", nId); g_hCOM = CreateFile(szCOM, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM, NULL); /* affectation taille des tampons d'émission et de réception */ SetupComm(g_hCOM, RX_SIZE, TX_SIZE); /* configuration du port COM */ if(!SetCommTimeouts(g_hCOM, &g_cto) || !SetCommState(g_hCOM, &g_dcb)) { AfxMessageBox("COM problem : Le programme ne fonctionnera pas correctement.", MB_ICONSTOP); UpdateData(TRUE); CloseHandle(g_hCOM); return FALSE; } /* on vide les tampons d'émission et de réception, mise à 1 DTR */ PurgeComm(g_hCOM, PURGE_TXCLEAR|PURGE_RXCLEAR|PURGE_TXABORT|PURGE_RXABORT); EscapeCommFunction(g_hCOM, SETDTR); return TRUE; UpdateData(FALSE); CloseCOM();
Je me suis dit, "je suis sur un portable, j'ai pas de port COM, ça doit bugguer à cause de ça." Je mets donc une petite ligne dans le if qui me dit si c'est bien ça le problème. Bingo, c'est ça. Je file sur un pc avec le bon port COM (le 3), et le message dans le if n'apparait plus (normal). Mais la message box juste derrière n'apparait pas non plus.
Tu as une idée de pourquoi ce if bloque les messages box?






Répondre avec citation








Partager