Problème de chaine de caractère [Résolu]

Signaler
Messages postés
116
Date d'inscription
dimanche 26 septembre 2004
Statut
Membre
Dernière intervention
13 février 2008
-
Messages postés
116
Date d'inscription
dimanche 26 septembre 2004
Statut
Membre
Dernière intervention
13 février 2008
-
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

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
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++
Messages postés
114
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2012
1
si tu met char nom[256], tu es obligé de passer par strcpy, je pense



6co
Messages postés
116
Date d'inscription
dimanche 26 septembre 2004
Statut
Membre
Dernière intervention
13 février 2008

Merci bcp a vous deux, maintenant ça fonctionne correctement.

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