Ciao ragazzi! Vi informo che ho risolto!!! 
avevo la soluzione a portata di mano e non me ne sono reso conto ahahah :P è stato molto semplice, e non sono neanche dovuto andare a casaccio!
Ora vi spiego:
ho scritto un pezzo di codice che non fa altro che stampare a video i settaggi della porta:
codice:
//leggiamo i parametri correnti
DCB myDCB;
memset(&myDCB, 0, sizeof(DCB));
BOOL Ok = GetCommState(hCom, &myDCB);
printf("La porta attualmente è così configurata:\n\nBaudRate: %d \n", myDCB.BaudRate);
printf("ByteSize: %d \n", myDCB.ByteSize);
printf("Parity: ");
switch(myDCB.Parity){
case NOPARITY:
printf("NOPARITY\n");
break;
case ODDPARITY:
printf("ODDPARITY\n");
break;
case EVENPARITY:
printf("EVENPARITY\n");
break;
case MARKPARITY:
printf("MARKPARITY\n");
break;
case SPACEPARITY:
printf("SPACEPARITY\n");
break;
}
printf("StopBits: ");
switch(myDCB.StopBits){
case ONESTOPBIT:
printf("ONESTOPBIT\n");
break;
case ONE5STOPBITS:
printf("ONE5STOPBITS\n");
break;
case TWOSTOPBITS:
printf("TWOSTOPBITS\n");
break;
}
e dopo di che ho attaccato Arduino e ho fatto partire il prog. e come settaggi mi ha dato
codice:
BaudRate: 9600
ByteSize: 0
Parity: NOPARITY
StopBits: ONESTOPBIT
quindi questo è il settaggio che NON FUNZIONA.
Dopodichè ho chiuso il programma C, ho aperto il monitor seriale di Arduino (che quindi setta la porta in automatico) e poi l'ho chiuso.
Ora riaprendo il programma C leggo i settaggi che il monitor seriale di Arduino ha apportato:
codice:
BaudRate: 9600
ByteSize: 8
Parity: NOPARITY
StopBits: ONESTOPBIT
BYTESIZE = 8 !!!!!!! Era questo che omettevo!!!
alchè mi è bastato scrivere queste due righe
codice:
myDCB.BaudRate = CBR_9600;
myDCB.ByteSize = 8;
myDCB.Parity = NOPARITY;
myDCB.StopBits = ONESTOPBIT;
(parity e stopbits potevo anche ometterli visto che sono così di default nel mio pc ma è meglio fare le cose per bene) e via, problema risolto al primo colpo :P