Probleme de syntaxe dans boucle while (problemes de pointeurs)

Résolu
cs_pif56 Messages postés 9 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 13 avril 2006 - 20 févr. 2006 à 20:56
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 20 févr. 2006 à 21:44
Bonjour,

J aimerais savoir ce qui cloche dans la syntaxe ci-dessous. Je recois 5 erreurs provenant de la ligne commencant par while.
J ai essaye de joindre une capture d écran pour vous montrer les erreurs, mais je n ai pas trouver le moyen de joindre l image.
Si vous en avez besoin dites moi seulement comment insérer ma capture d'ecran.
Merci de votre aide.

Char *buffer,prefixString;
Int i=0;

buffer = (PCHAR)LocalAlloc(LMEM_FIXED, FileSize+1);
prefixString = (PCHAR)LocalAlloc(LMEM_FIXED, 20);
while( ( buffer[i] == '\' ) && ( buffer[i+1] == '1' ) )
{
prefixString[i]=buffer[i+2];
i++;
}
prefixString[i]='\0';

SetDlgItemText(hwnd,IDC_EDIT_PREFIX,prefixString);
SetDlgItemText(hwnd,IDC_EDIT_DEPTHLIST,buffer);
LocalFree(buffer);
LocalFree(prefixString);

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 févr. 2006 à 21:44
SetWindowText(hedit, prefixString);

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
cs_pif56 Messages postés 9 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 13 avril 2006
20 févr. 2006 à 20:57
[auteurdetail.aspx?ID=198568 ]

PS: desole c est le meme message avecune faute en moins (prefixString est également un pointeur vers char)

Bonjour,
J aimerais savoir ce qui cloche dans la syntaxe ci-dessous. Je recois 5 erreurs provenant de la ligne commencant par while.
J ai essaye de joindre une capture d écran pour vous montrer les erreurs, mais je n ai pas trouver le moyen de joindre l image.
Si vous en avez besoin dites moi seulement comment insérer ma capture d'ecran.
Merci de votre aide.

Char *buffer,*prefixString;
Int i=0;

buffer = (PCHAR)LocalAlloc(LMEM_FIXED, FileSize+1);
prefixString = (PCHAR)LocalAlloc(LMEM_FIXED, 20);
while( ( buffer[i] == '\' ) && ( buffer[i+1] == '1' ) )
{
prefixString[i]=buffer[i+2];
i++;
}
prefixString[i]='\0';

SetDlgItemText(hwnd,IDC_EDIT_PREFIX,prefixString);
SetDlgItemText(hwnd,IDC_EDIT_DEPTHLIST,buffer);
LocalFree(buffer);
LocalFree(prefixString);
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 févr. 2006 à 21:22
"Char" avec une majuscule ???

'\\' doit être doublé, c'est un caractère d'échappement.

LocalAlloc est issu du 16 bits, à remplacer par VirtualAlloc ou HeapAlloc.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 févr. 2006 à 21:31
Autre chose, dans une situation telle que celle ci, inotile de faire tourner le memory manager inutilement:

#define MEMDISPO (MEM_RESERVE | MEM_COMMIT | MEM_TOP_DOWN)

prefix = VirtualAlloc(0, FileSize+1 + 20, MEMDISPO, PAGE_READWRITE);
buffer = prefix + 20; // TOUT EN 1 SEULE ALLOC

Al a fin, juste un VirtualFree sur prefix, double benef.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pif56 Messages postés 9 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 13 avril 2006
20 févr. 2006 à 21:41
Merci beaucoup de ton aide.
Je me galere un peu avec win32...ah quand on veut faire ses propres interfaces!

En meme temps, j ai un autre probleme de taille. Sur un programme C/C++ sans MFC, j utilise d'habitude printf pour cibler mes erreurs.
Est ec que tu aurais un equivalent sur win32?

Dans cet exemple, je n'arrive pas a afficher dans une edit box ma chaine prefixString, qui est censee etre egale a buffer tant que buffer ne lit pas la chaine "\1". J'aimerais donc affcher (via l'equivalent d un printf ) quelquechose me premettant de cibler mon erreur.

Merci encore de ta patience!
0
Rejoignez-nous