Prgramme qui plante lors de Lecture de fichier

Signaler
Messages postés
65
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
15 juillet 2004
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonjour
j utilise la fonction suivante pour lire des fichiers:

CString GenerateHTML::bReadFileHTML(CString FileName)
{
DWORD dwWritten;
CString PathTemplate="Template\";
PathTemplate+=FileName;
HANDLE hFile = ::CreateFile(PathTemplate,GENERIC_READ, 0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD dwSize;
dwSize = GetFileSize (hFile, NULL);
char *buffer = new char[dwSize+1];
buffer[dwSize]='\0';

if(hFile != INVALID_HANDLE_VALUE && hFile != NULL)
{
::ReadFile(hFile,buffer,dwSize,&dwWritten,NULL);

}
::CloseHandle(hFile);
buffer[dwSize+1]='\0';
CString csCode=buffer;
delete [] buffer;
buffer=NULL;
return csCode;

}
Le probleme est que ca plante,et l executable coince et veut meme pas se fermer meme si je fais terminer processus dans le gestionnaire de tache.

je sais pas d ou vient le probleme
Merci de m'aider

3 réponses

Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Verifie le nombre d'octets que tu as pu lire :

::ReadFile(hFile, buffer, dwSize &dwWritten, 0);

if (dwSize != dwWritten) {CloseHandle(hFile); delete [] buffer; return 0; }
Messages postés
65
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
15 juillet 2004

Bonjour le prbleme persiste.
je crois que c dur au fait que j appelle cette fonction pour lire des fichier .htm,qd j ai changé l extension par .txt ca marche
tu sais pas pq?
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
ACHTUNG:
ligne sous ReadFile
buffer[dwSize+1]='\0'; cet indice n'exite pas !!!

ciao...
BruNews, Admin CS, MVP Visual C++