Merci de m'accueillir parmi vous. Je débute et j'aimerai svp avoir de l'aide.
Voici mon problème:
Je dispose de 2 structures différentes, et j'aimerai que le programme
utilise une ou l'autre définition, selon le paramètre passé en ligne de commande.
Pour des raisons propre au programme, j'aimerai conserver le même nom d'identificateur pour les 2 structures.
Je m'explique:
Dans unit1.cpp, form principale, j'ai mis:
On voit que, par défaut (sans aucune ligne de commande), MODEL_REC = N_MODEL_A.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void __fastcall TForm1::FormCreate(TObject *Sender) { .... MODEL_REC = N_MODEL_A; if (LowerCase(ParamStr(1)) == "-modeleb") MODEL_REC = N_MODEL_B; .... }
Si par contre, on exécute: MonProg.exe -modeleb, alors MODEL_REC prend la valeur N_MODEL_B.
Dans unit1.h, je dispose de:
Comment je dois disposer les définitions, en tenant compte que je suis obligé de garder le même nom d'identificateur, en l'occurence, MODEL_S
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 #ifndef Unit1H #define Unit1H #define N_MODEL_A 0 #define N_MODEL_B 1 // etc.... typedef struct { int Port; char User[30]; char Pass[20]; }S_MODEL; /* Le choix doit porter sur les 2 structures ci dessous */ /*=========================================*/ /* définition de la structure MODEL_S par défaut. MODEL_REC = N_MODEL_A */ typedef struct { char name[20]; int numero; S_MODEL Model_Actif; }MODEL_S; /* définition de la structure MODEL_S si paramstr(1) = "-modeleb*/ typedef struct { char name[40]; int numero; char MyKey[14]; S_MODEL Model_Actif; }MODEL_S; private: // User declarations public: // User declarations int MODEL_REC; __fastcall TForm1(TComponent* Owner); }; extern PACKAGE TForm1 *Form1; #endif
Merci beaucoup pour votre aide. Y a t'il une autre astuce ? Merci encore.
Partager