Problem de struct

Résolu
cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007 - 1 oct. 2007 à 08:56
cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007 - 2 oct. 2007 à 08:22
Bonjour a tous,

Désolé de demander votre aide pour une si petite chose, mais j'ai dejà perdu trop de temps la-dessus...

J'essaie de creer une struct, mais je n'arrive pas à l'utiliser... Voilà ce que je voudrais:

typedef

struct {

   char dllName;

   char fctName;
   DWORD fctAddress;
   DWORD retAddress;
}FUNCTIONDATA;FUNCTIONDATA fctData[];

fctData[0].dllName = "User32.dll"      //voir les erreurs plus bas...

//error C2143: syntax error : missing ';' before '.' &&
//error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
//error C2369: 'fctData' : redefinition; different subscripts

Merci pour votre aide.

Bonne semaine a tous!

 ElpenS

7 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
1 oct. 2007 à 09:58
Ouille Ouille Ouille.

typedef

struct {

   char dllName;     << Ici c'est un CHAR donc juste 1 seul charactere!!!

   char fctName;    << Idem c'est 'un char!
   DWORD fctAddress;
   DWORD retAddress;
}FUNCTIONDATA;

Si tu veux pouvoir y stocker des chaines fait plutot ca :

typedef

struct {

   char dllName[64];

   char fctName[64];
   DWORD fctAddress;
   DWORD retAddress;
}FUNCTIONDATA;

FUNCTIONDATA fctData[];

strcpy(fctData[0].dllName, "User32.dll");

Voila tout ... Et un conseil pense a ouvrir un bouquin de C au passage :-)

Shell
3
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
1 oct. 2007 à 10:00
Un ligne m'a échappée.

Quote :
FUNCTIONDATA fctData[]; << Aucune taille de tableau défini ca va poser problème si tu ne fais pas d'alloc!

Solution :
FUNCTIONDATA fctData[256];

Shell
3
cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007
1 oct. 2007 à 11:14
Ouais, jsuis bien d'accord avec toi, j'ai pas trop regardé à la structure, mais cependant ce que tu me dis ne fonctionne pas chez moi...

je ne peux pas accéder a fctData[0].dllName, malheureusement...

 ElpenS
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
1 oct. 2007 à 11:36
Avec le code que je t'ai corrigé, qu'elle est l'erreur renvoyé par le compilo ?

Shell
0

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

Posez votre question
cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007
1 oct. 2007 à 11:53
Non, désolé, ca fonctionne correctement, c'est moi qui suit idiot et trop pressé!!!





Merci pour ton aide!

 ElpenS
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
1 oct. 2007 à 20:15
c'est juste dans le header PE que la taille de la dll est limitée à 8 octets ? parce que là ... tu mets 64, pourquoi pas, mais Windows gère les noms de fichiers longs genre <256 caracs il me semble. Donc c'est soit [8], soit [256], soit *  ....

Même si bon je suis d'accord avec toi : un nom de dll aussi long, celui qui l'a codée l'est barge ^^ 

_______________________

Omnia vincit labor improbus
http://calvin-studio.fr
0
cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007
2 oct. 2007 à 08:22
Oui, tu as raison, j'ai mis 256 dans mon code, au cas ou...

Merci pour ces précisions!

 ElpenS
0
Rejoignez-nous