Chaîne de caractère avec int

Résolu
kyfranBibax Messages postés 26 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 6 janvier 2008 - 16 juin 2005 à 12:49
kyfranBibax Messages postés 26 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 6 janvier 2008 - 16 juin 2005 à 14:52
Coucou,



Alors, j'ai un petit problème pour une conversion en chaîne de caractère...



Voilà comment ce que j'ai essayé :

1) char* messErr=sprintf(stderr,"No support for TIFF
files with PLANARCONFIG=%d (only single plane images supported)\n",
planar_config);

2) char* messErr="No support for TIFF files with PLANARCONFIG=";

strcat(messErr,planar_config);

strcat(messErr," only single plane images supported)\n");



Et j'obtiens seulement (je sais c'est jamais très bon) un warning :

: warning C4047: 'initializing' : 'char *' differs in levels of indirection from 'int'



et lorsque j'utilise la dll correspondant avec mon appli c#,
j'obtiens un NullExceptionReference (ou ExceptionNullRefererence peu
importe!).

Je suis sûr que c'est la conversion des int en char qui pose problèmes et je vois pas comment résoudre cela.



Si vous avez une idée du pourquoi du comment de la chose, ça m'éviterais de ne mettre que du texte dans mes MessageBox associées



Merci d'avance.

(ps: pas très bon en C alors excusez moi si grossière erreur).

Have a nice day



Bibax en fait un max

3 réponses

kyfranBibax Messages postés 26 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 6 janvier 2008
16 juin 2005 à 14:52
Coucou,



je m'en suis rendu compte que ça renvoyait des int mais je pensais que
sprintf et strcat était capables de convertir des int en char.

Bon ok, mauvaise utilisation, surtout de sprintf (pas lu la doc avant, seulement souvenir...).



Voici la solution pour ceux qui auront le même problème :



char messErr[256];

sprintf(messErr,"Too many colors
for BSB format (%d> 128 max.)\n\tTry reducing the colors.\n\tUsing
XnView\n\t",num_colors);

MessageBox(NULL,messErr,"Warning",MB_OK);

return -1;



et je suis sûr qu'on peut faire mieux concernant l'allocation de mémoire de messErr.

Have a nice day



Bibax en fait un max
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 juin 2005 à 12:59
char* est pointeur référençant une adresse mémoire.
sprintf retourne un nombre, aucun rapport.

ciao...
BruNews, MVP VC++
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
16 juin 2005 à 13:45
De plus, a priori, planar_config est un int donc, dans le cas 2:

strcat(messErr, planar_config) n'est pas judicieux

Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...
0
Rejoignez-nous