|
| cvs / #defines Fra : Troels Thomsen |
Dato : 03-01-03 10:53 |
|
Hej,
Jeg vil gerne i en about box kunne skrive hvilke filer + versionsnumre af
indgående moduler der er blevet brugt under kompileringen. Og det skulle
gerne være lidt automatisk, dvs hvis man kompilerer en fil / header mere
med, så indgår den automatisk i den streng, som det var planen at
preprocessoren skulle bygge for mig.
Jeg bruger CVS og MSVC
Fra CVS kan jeg bruge f.eks. id tag'et
#define _MYMODULE1_CPP "$Id$"
bliver til
#define _MYMODULE1_CPP "$Id: _myModule1.cpp,v 1.21 2002/10/22 19:29:12
myName Exp $"
Tanken var så at jeg i hver fil fylder id tag'et oven i hvad der er i
strengen i forvejen.
Første fil:
#define _VER_STRING _MYMODULE1_CPP
næste fil:
#define TMP _VER_STRING
#undef _VER_STRING // undgå redefinition error
#define _VER_STRING TMP _MYMODULE2_CPP
og så videre.
Med tilstrækkeligt #ifdef 's burde man kunne lave den samme stump kode og
putte ind i alle filer.
Til slut kunne man så lave en
MessageBox(_VER_STRING)
MEN msvc er ikke glad for at #undef'e og #define på den måde
Nogen idéer?
Jeg vil gerne undgå shell programmering.
mvh Troels
| |
Anders J. Munch (03-01-2003)
| Kommentar Fra : Anders J. Munch |
Dato : 03-01-03 17:02 |
|
"Troels Thomsen" <nej@tak.dk> wrote in message news:3e155cd0$0$71681
>
> Nogen idéer?
> Jeg vil gerne undgå shell programmering.
struct cvs_id
{
static string alle_cvs_id;
cvs_id(string const& tekst)
{ alle_cvs_id += tekst; }
};
static cvs_id _MYMODULE1_CPP("$Id: _myModule1.cpp,v 1.21 2002/10/22 19:29:12
myName Exp $");
MessageBox(cvs_id::alle_cvs_id.c_str());
Håber det er klart, ellers sig til.
- Anders
| |
Troels Thomsen (06-01-2003)
| Kommentar Fra : Troels Thomsen |
Dato : 06-01-03 16:57 |
|
>
> static cvs_id _MYMODULE1_CPP("$Id ............$");
>
Ehhh, constructor kald ?
static cvs_id id_obj("text") ???
_MYMODULE1_CPP makro defineret et sted eller ?
static cvs_id id_obj ( ' _MYMODULE1_CPP("$Id$")' );
Jeg er grundig forvirret !!
| |
Anders J. Munch (06-01-2003)
| Kommentar Fra : Anders J. Munch |
Dato : 06-01-03 19:06 |
|
"Troels Thomsen" <nej@tak.dk> skrev i en meddelelse
news:3e19a6c1$0$71641$edfadb0f@dread11.news.tele.dk...
> >
> > static cvs_id _MYMODULE1_CPP("$Id ............$");
> >
>
> Ehhh, constructor kald ?
> static cvs_id id_obj("text") ???
>
> _MYMODULE1_CPP makro defineret et sted eller ?
Ja, et constructor kald. Ingen makroer. (Det makro-lignende
variabelnavn skyldes bare genbrug fra dit forlæg.)
Idéen er at constructoren tager sig af at registrere informationen
centralt, så du bare skal erklære en variabel i hver .cpp-fil.
> static cvs_id id_obj ( ' _MYMODULE1_CPP("$Id$")' );
>
static cvs_id id_obj("$Id$");
- Anders
| |
|
|