IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

probléme appel de macro


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Points : 33
    Points
    33
    Par défaut probléme appel de macro
    bonjour, je suis débutant dans le C++ et biensur j'ai un petit soucis. Voilà la portion de code qui me pose probléme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    memConfig[msg_ID].fileLabel = EZPROTOCOL_MSG_ID_1;	
    memConfig[msg_ID].filetype = EZPROTOCOL_FILE_TYPE_MSG;
    memConfig[msg_ID].msgProperties.size = 40;
    memConfig[msg_ID].keyBoardProtection = EZPROTOCOL_KEYBOARD_PROTECTION_UNLOCKED;
    strcpy(memConfig[msg_ID].msgProperties.runningPeriod.startTime, EZPROTOCOL_TIME_ALWAYS);
    strcpy(memConfig[msg_ID].msgProperties.runningPeriod.stopTime, EZPROTOCOL_TIME_NEVER);
    DWORD wRet = SysParam.SetMemoryCfgTable(this->adaptive, msg_MAX, &memConfig[msg_MAX], false);
    En fait le soucis, c'est qu'à ma premiére ligne "EZPROTOCOL_MSG_ID_1" correspond à une macro, sous cette forme ça fonctionne très bien mais quand "msg_ID" change en fait c'est du type:
    memConfig[0].fileLabel = EZPROTOCOL_MSG_ID_1;
    ensuite
    memConfig[1].fileLabel = EZPROTOCOL_MSG_ID_2;
    etc...
    Ce que je voudrais c'est quelque chose dans ce genre là pour que ça appelle tout seul la bonne macro selon la valeur de msg_ID:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    stringstream msgID;
    ID << "EZPROTOCOL_MSG_ID_" << msg_ID;
     
    memConfig[msg_ID].fileLabel = ID;
    mais ça ne passe pas... quelqu'un aurait-il une idée?

    MERCI

  2. #2
    Membre averti Avatar de Kujara
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 262
    Points : 358
    Points
    358
    Par défaut
    Impossible a faire si msg_ID n'est pas contant a la compilation.

    Apres, tu peux t'orienter vers des maps, et les remplir avec les macros, ça marchera surement mieux, mais bon, moins simple.

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Comment sont définis les EZPROTOCOL_MSG_ID_# ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Laurent Gomila Voir le message
    Comment sont définis les EZPROTOCOL_MSG_ID_# ?
    ils sont définis dans un fichier en-tête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //MSG ID - constants
    #define	EZPROTOCOL_MSG_ID_0		0x30
    #define	EZPROTOCOL_MSG_ID_1	             0x41			
    #define	EZPROTOCOL_MSG_ID_2		0x42			
    #define	EZPROTOCOL_MSG_ID_3		0x43			
    #define	EZPROTOCOL_MSG_ID_4		0x44			
    #define	EZPROTOCOL_MSG_ID_5		0x45			
    #define	EZPROTOCOL_MSG_ID_6		0x46			
    #define	EZPROTOCOL_MSG_ID_7		0x47			
    #define	EZPROTOCOL_MSG_ID_8		0x48
    ...jusqu'à #define EZPROTOCOL_MSG_ID_80

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Mais donc, msg_id contient 0, 1, etc. ?

    Je te conseillerais un bète tableau statique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    static const unsigned char ids[] = {
     EZPROTOCOL_MSG_ID_0,
     EZPROTOCOL_MSG_ID_1,
     EZPROTOCOL_MSG_ID_2,
     ...
     EZPROTOCOL_MSG_ID_8
     };
     
    memConfig[msg_id].fileLabel = ids[msg_id];

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Mais donc, msg_id contient 0, 1, etc. ?

    Je te conseillerais un bète tableau statique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    static const unsigned char ids[] = {
     EZPROTOCOL_MSG_ID_0,
     EZPROTOCOL_MSG_ID_1,
     EZPROTOCOL_MSG_ID_2,
     ...
     EZPROTOCOL_MSG_ID_8
     };
     
    memConfig[msg_id].fileLabel = ids[msg_id];
    Parfait! la méthode semble marcher!
    MERCI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème appel autre macro avec Call
    Par Novice72 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 30/06/2015, 07h15
  2. Problème pour appeler image5D macro Extensions
    Par elphnora dans le forum ImageJ
    Réponses: 0
    Dernier message: 17/08/2010, 21h15
  3. Réponses: 7
    Dernier message: 11/07/2006, 09h31
  4. [Système] Problème appel exécutable
    Par Aurel 76 dans le forum Langage
    Réponses: 5
    Dernier message: 29/04/2006, 14h49
  5. Appeler une macro
    Par yannph dans le forum Access
    Réponses: 5
    Dernier message: 11/01/2005, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo