Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1933 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] A votre avis c'est possible de faire ca?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] A votre avis c'est possible de faire ca?

n°123148
Ace17
Posté le 08-04-2002 à 12:30:41  profilanswer
 

J'ai défini ceci :  
#define VERSION_MAJOR         1
#define VERSION_MINOR         20
#define PRETTY_NAME           "Software 1.20"
 
Mais j'aimerais plutot avoir un truc un peu plus "automatisé" de maniere a ce que je n'ai qu'a changer VERSION_MAJOR ou MINOR et que la string se change toute seule :
#define VERSION_MAJOR      1
#define VERSION_MINOR      20
#define PRETTY_NAME       "Software VERSION_MAJOR.VERSION_MINOR"
 
Evidemment, pour PRETTY_NAME, il m'affiche :
"Software VERSION_MAJOR.VERSION_MINOR"  et non pas "Software 1.20" ce qui est normal....
Je cherche la syntaxe correcte pour faire ca... Quelqu'un sait?

 

[jfdsdjhfuetppo]--Message édité par Ace17--[/jfdsdjhfuetppo]

mood
Publicité
Posté le 08-04-2002 à 12:30:41  profilanswer
 

n°123232
torpe23
Posté le 08-04-2002 à 15:12:09  profilanswer
 

moi j'aurais fait :
 
#define VERSION_MAJOR      1  
#define VERSION_MINOR      20  
 
et puis  
 
char PRETTY_NAME[30];
 
sprintf(PRETTY_NAME,"Software %d.%d" ,VERSION_MAJOR,VERSION.MINOR);
 
Cela devrait marcher.

n°123246
Jubijub
Parce que je le VD bien
Posté le 08-04-2002 à 15:29:15  profilanswer
 

arf...ca existe presque mot pour mot dans l'installeur de nullsoft (editeur de winamp, installer de winamp, gordianknot, etc..)...
 
quand tu compiles l'installeur, dans ton script, tu peux mettre major et minor version pareil que tu l'a mis...
 
maintenant je sais pas programmer en C++, donc je peux pas te dire :D


---------------
Jubi Photos : Flickr - 500px
n°123258
Ace17
Posté le 08-04-2002 à 16:06:18  profilanswer
 

torpe23 a écrit a écrit :

moi j'aurais fait :
 
#define VERSION_MAJOR      1  
#define VERSION_MINOR      20  
 
et puis  
 
char PRETTY_NAME[30];
 
sprintf(PRETTY_NAME,"Software %d.%d" ,VERSION_MAJOR,VERSION.MINOR);
 
Cela devrait marcher.  




 
Oui je sais, merci  :) Mais j'aimerais que ce soit une constante;
 
Jubijub tu pourrais pas balancer un morceau de ce que tu as? Merci

 

[jfdsdjhfuetppo]--Message édité par Ace17--[/jfdsdjhfuetppo]

n°123265
Jar Jar
Intaigriste
Posté le 08-04-2002 à 16:15:25  profilanswer
 

Tu peux utiliser autoconf, avec par exemple :
VERSION_MAJOR=1
VERSION_MINOR=20
AM_INIT_AUTOMAKE(programme,"$VERSION_MAJOR"."$V
ERSION_MINOR" )
 
(non testé)
 
Puis dans un version.h.in tu mets :
#define VERSION_MAJOR @VERSION_MAJOR@
#define VERSION MINOR @VERSION_MINOR@
#define PRETTY_NAME "Software @VERSION_MAJOR@.@VERSION_MINOR@"
 
Comme ça en plus, autoconf connaît le numéro de version, c'est préférable.

 

[jfdsdjhfuetppo]--Message édité par Jar Jar--[/jfdsdjhfuetppo]


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°123266
Ace17
Posté le 08-04-2002 à 16:17:27  profilanswer
 

c'est surement tres bien autoconf mais y'a quand meme bien un moyen de concaténer des strings statiquement en C++!!!!  :pt1cable:

n°123268
H4dd3R
Q2
Posté le 08-04-2002 à 16:19:00  profilanswer
 

Ace17 a écrit a écrit :

c'est surement tres bien autoconf mais y'a quand meme bien un moyen de concaténer des strings statiquement en C++!!!!  :pt1cable:  




Pas forcément en constante!! ;)


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°123270
Ace17
Posté le 08-04-2002 à 16:20:20  profilanswer
 

:lol: bon je crois que je vais opter pour ce que j'appelle la "technique du crétin" c'est a dire :
#define VERSION_MAJOR         1
#define VERSION_MINOR         20
#define PRETTY_NAME           "Software 1.20"

n°123299
LeGreg
Posté le 08-04-2002 à 17:14:46  profilanswer
 

Ace17 a écrit a écrit :

c'est surement tres bien autoconf mais y'a quand meme bien un moyen de concaténer des strings statiquement en C++!!!!  :pt1cable:  




 
oui quand il s'agit de variables..
 

Code :
  1. #define MAJEURE "1"
  2. #define MINEURE "20"
  3. const char PRETTY_NAME[] = "Software " MAJEURE "." MINEURE;


 
LEGREG

n°123307
Krueger
tout salaire demande dutravail
Posté le 08-04-2002 à 17:45:07  profilanswer
 

C'est tout con en fait.
 
#define VERSION_MAJOR "1"
#define VERSION_MINOR "20"
#define PRETTY_NAME "Software " VERSION_MAJOR "." VERSION_MINOR


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
mood
Publicité
Posté le 08-04-2002 à 17:45:07  profilanswer
 

n°123320
Ace17
Posté le 08-04-2002 à 18:21:16  profilanswer
 

MDR c'était tout con en effet! Et moi qui suit allé chercher si loin avec les # et les ##!! :lol:  
 
Par contre j'aimerais présenter mon amélioration; En effet je préfere que les deux premieres constantes ne soient pas des strings tout simplement pour pouvoir faire des comparaisons sur les n° de version...
 
#define VERSION_HIGH 0
#define VERSION_LOW 00
 
#define MKSZ(a)  #a
 
#define PRETTY_NAME   "Software " MKSZ(VERSION_HIGH) "." MKSZ(VERSION_LOW)

n°123321
Krueger
tout salaire demande dutravail
Posté le 08-04-2002 à 18:26:56  profilanswer
 

C'est pas plutôt "a" au lieu de #a?


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
n°123322
Ace17
Posté le 08-04-2002 à 18:28:23  profilanswer
 

Non justement, le # sert a transformer en string le parametre. Si tu mettais "a" il t'afficherait : Software a.a

 

[jfdsdjhfuetppo]--Message édité par Ace17--[/jfdsdjhfuetppo]

n°123323
Jar Jar
Intaigriste
Posté le 08-04-2002 à 18:31:53  profilanswer
 

Ace17 a écrit a écrit :

Non justement, le # sert a transformer en string le parametre. Si tu mettais "a" il t'afficherait : Software a.a


La vache, on peut en faire des trucs avec le préprocesseur, il est plein de richesses insoupçonnées.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°123324
Krueger
tout salaire demande dutravail
Posté le 08-04-2002 à 18:32:12  profilanswer
 

Oui, je viens de tester en effet. J'ai répondu trop vite. :sweat:
 
Mais j'ai "Software VERSION_HIGH.VERSION_LOW". :confused:

 

[jfdsdjhfuetppo]--Message édité par Krueger--[/jfdsdjhfuetppo]


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
n°123396
Ace17
Posté le 08-04-2002 à 22:34:12  profilanswer
 

Whoups.... ca compilait mais j'avais pas testé... ( c'est pour une librairie alors comme y'a pas d'appli client... )
En fait c'est normal ce résultat quand on y pense...
Bon ben je vais revenir a ma technique du cretin... :D

n°123532
Krueger
tout salaire demande dutravail
Posté le 09-04-2002 à 12:41:58  profilanswer
 

Tu peux toujours garder tes constantes de type chaîne de caractère et les convertir au besoin en entiers si tu veux les comparer. ;)


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
n°123533
Ace17
Posté le 09-04-2002 à 12:45:07  profilanswer
 

Ouais, c'est sans doute ce que je vais faire  ;)

n°123552
point
Posté le 09-04-2002 à 13:38:46  profilanswer
 

euh....vous etes plutot perturbés les gars...
ça, ca marche:
 
 
#define  APP_MAJOR_VERSION 12
#define  APP_MINOR_VERSION 40
#define  STR(n) #n
#define         VERSIONIZE(a,b)    "MonProgramme v" STR(a) "." STR(b)
 
 
Voili, donc tu peux faire:
 
#define     UNE_CHAINE_BIEN_FORMATEE         VERSIONIZE(APP_MAJOR_VERSION , APP_MINOR_VERSION )  
 
 
 :jap:  :hello:

n°123964
Ace17
Posté le 10-04-2002 à 00:08:08  profilanswer
 

Hé ben enfin quelqu'un qui trouve!  :lol:
Merci a toi point!

n°124101
point
Posté le 10-04-2002 à 11:09:18  profilanswer
 

:jap:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] A votre avis c'est possible de faire ca?

 

Sujets relatifs
SQL :Server Est ce possible ?[SQL] appel de DLL possible?
[Javascript] Tester si la page est une popup c'ets possible ?[vb6] always on top!? c possible?
votre avis sur cet hébergemen pour $3.92, vous en pensez quoi ? arnaq?C# et .NET : votre avis
se connecter a un ftp via un programme visual, c possible ???[HTML] Definir la largeur d'une liste deroulante -> possible ?
[C++] Dll, exportation d'une classe, c possible, non !?[JAVA] Interroger une BD à partir d'une applet, c'est possible ?
Plus de sujets relatifs à : [C++] A votre avis c'est possible de faire ca?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)