Bonjour à tous,
J'ai un petit souci de chaines qui me fait lamentablement planter mon prog.
C'est un peu en rapport avec un sujet que j'ai posté il y a peu de temps, mais le problème n'est pas tout à fait le même.
Voici le bout de code qui me pose problème :
La 2e MessageBox, c'est pour vérifier le contenu de callBackMessage. Et il est bon.
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 if (strcmp(callBackMessage,"\0")) { tempBuff = (char *)malloc(sizeof(callBackMessage) + 3); if (tempBuff == NULL) MessageBox (0, "Pb malloc !!", "Erreur", MB_ICONINFORMATION); else{ MessageBox (0, callBackMessage, "Test", MB_ICONINFORMATION); sprintf(tempBuff, "1K%s", callBackMessage); strcpy(lpszReceiveBuff, tempBuff); buffSize = strlen(tempBuff); free(tempBuff); return buffSize; } } return 0;
Le problème se situe au moment du sprintf. L'appli de test, avec laquelle je fais appel à la fonction de la DLL plante lamentablement, sans même un message d'erreur.
Pourtant, l'allocation mémoire est OK, callBackMessage est OK. Je vois vraiment pas pourquoi ça veux pas marcher.
Au niveau déclarations :
callBackMessage est une chaine initialisée par une fonction callBack d'une API.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 char * callBackMessage; [...] char * tempBuff; int buffSize;
Si quelqu'un voit d'où vient le problèmeJe galère vraiment là, je suis loin d'être un expert en C.
Partager