Problème de chaine de caractère

Résolu
Mastersam Messages postés 116 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 13 février 2008 - 3 nov. 2005 à 21:40
Mastersam Messages postés 116 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 13 février 2008 - 4 nov. 2005 à 16:19
Bonjour j'ai un problème,
voilà je lis le contenu d'une edit avec :

char valtmp[256];
GetWindowText(GetDlgItem(hwnd, IDC_ZONE_NOM),valtmp, 256);

puis j'essaye de mettre cette chaine dans un membre d'une structure:

struct infoscnstruct{
LPCTSTR nom;
short nbparams;
byte graduation;
BOOL activated;
};
Infoscenes=(struct infoscnstruct*)malloc((nbscenes+1)*sizeof(struct infoscnstruct));

en faisant:

Infoscenes[nbscenes].nom=valtmp;

et qd maintenant j'affiche le contenu de Infoscenes[nbscenes].nom j'obtient n'importe-quoi du genre des carrés (caractères inaffichables) ou une suite de ùô$ ... mais pas 256 ni la longueur de la chaine capturée, juste 3 de temps en temps.

Si je met un char nom[256] dans ma structure j'ai une erreur "incompatible assignement types" sur Infoscenes[nbscenes].nom=valtmp;

Vraiment je ne vois pas pourquoi.
Merci d'avance si quelqu'un y vois plus clair que moi là dedans.


http://www.rc-bot.com/

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 nov. 2005 à 00:21
D'abord écrire du C comme du C:
typedef struct _INFOST{
LPCTSTR nom;
short nbparams;
byte graduation;
BOOL activated;
} INFOST, *LPINFOST;

LPCTSTR nom; est un pointeur, pointera où ???
On change:
typedef struct _INFOST{
char nom[256];
short nbparams;
byte graduation;
BOOL activated;
} INFOST, *LPINFOST;

Infoscenes = (LPINFOST) malloc((nbscenes + 1) * sizeof(INFOST));

On y met des données:
strcpy(Infoscenes[0].nom, "Texte de test");

et maintenant tu pourras afficher:
MessageBox(0, Infoscenes[0].nom, "TEST", 0);

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
cs_6co Messages postés 114 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 5 avril 2012 1
3 nov. 2005 à 22:28
si tu met char nom[256], tu es obligé de passer par strcpy, je pense



6co
0
Mastersam Messages postés 116 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 13 février 2008
4 nov. 2005 à 16:19
Merci bcp a vous deux, maintenant ça fonctionne correctement.

http://www.rc-bot.com/
0
Rejoignez-nous