Bonjour,

J'essaie d'écrire un programme C++ (Visual C++ 6.0) qui a pour but de lire ce qui arrive sur un port série (RS232) et de le stocker dans un fichier texte.

Mon code est le suivant :
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
 
string bufferResDP;
FILE *f;
 
while(1)
{
	bufferResDP = "";
 
	// Lecture des port séries
	ComPortSerie.receiveData(&bufferResDP);
 
	f = fopen("test.txt", "a");
	fprintf(f, "%s\n", &bufferResDP);
	fclose(f);
 
	Sleep(1000);
}
J'ai récupéré le code pour le receiveData, il fonctionne (au debugger, bufferResDP contient bien la chaine de caractère envoyée via le port série), le voilà quand même au cas où :

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
 
int LSerie::receiveData(string* data)
{	char buffer[1025];
	int nbChar=0;
 
	//--- Vérification des paramétres passés à la fonction:
	if( data==NULL)
		return false;
 
	nbChar = receiveData(1024, (LPBYTE)buffer);
	buffer[nbChar] = 0; // caractère de fin de chaine.
	data->assign(buffer);
 
	return nbChar;
}
 
int LSerie::receiveData(DWORD lg, LPBYTE data)
{
	DWORD result=0;
 
	//--- Vérification des paramètres passés à la fonction:
	if( lg<0 || data==NULL)
		return false;
 
	if (!ReadFile(hcom, data, lg, &result, 0))
		return -1;
	else
		return (int)result;
}
Le problème est que ce que j'écris dans le fichier texte a à peu près cette tête-là :

ÌÌÌÌ
ÌÌÌÌ
ÌÌÌÌ
ÌÌÌÌC/
ÌÌÌÌC/
ÌÌÌÌ

J'ai essayé en convertissant bufferResDP avec LPCTSTR et LPCSTR... sans résultat.

Quelqu'un peut-il m'aider ?
Merci !