![]() |
![]() |
![]() |
|
[ Accueil ] [ Retour
à l'article ] RCVersion
http://www.bzctoons.net/article.php3?id_article=5 ENGLISH VERSION AT WWW.CODEPROJECT.COM mardi
29 avril 2003, par Bzc ToOn'S Ce freeware est inspiré d'un autre utilitaire developpé par Srinivas Vaithianathan diponible sur Codeproject (Versioning of executables at build time). L'ayant complétement recodé il ne reste plus aucune ligne de code de l'outil original. IntroductionDepuis quelques années, j'utilise un fabuleux outil OpenSource nommé ClassBuilder de Jimmy Venema et disponible sur SourceForge.From Sourceforge project page : ClassBuilder is freeware CASE tool targeted at the C++ developer, running on Win95/98/NT. It lets you create, manipulate and navigate classes, class relations, class members and class methods at a high level of abstraction trough a graphical user interface. Pour chaque classe ClassBuilder génère deux fichiers source : un fichier entête (*.h) et un fichier pour le code lui-même (*.cpp). Il génère aussi un fichier d'entête principale (*.h) pour l'ensemble du modèle UML. Ce fichier, appelé Master Header File, inclus toutes les definitions de classe, les typedefs, constantes, macros, etc... Ce fichier contient aussi des constantes symboliques automatiquement mises à jour à chaque génération des sources. Par exemple si le modèle de donnée se nomme 'model' the Master Header File contient les définitions de constantes suivantes. A chaque fois que l'interface de l'API change Classbuilder incrémente MODEL_VERSION et met à jour MODEL_DATE and MODEL_TIME. Compilation du modéle de donnéeAfin d'utilser le modéle de donnée il est nécessaire de le compiler ! ;-). Plusieurs options sont possibles :![]() ![]() ![]() ![]() Dans le cas ou il est compilé sous forme binaire (exe ou dll) l'assistant Visual Studio génère un fichier de définition de ressources (*.rc). Ce fichier contient la description des boîtes de dialogue, des icones, des bitmaps, etc... Il contient aussi la définition des informations de version du binaire produit. fichier de définition de ressources (*.rc)Here is the fragment of code in a Windows Resource File which describes the version information for RCVersion itself./////////////////////////////////////////////////////////////////////////////
// // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION 1, 0, 0, 100 PRODUCTVERSION 1, 0, 0, 1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x9L #else FILEFLAGS 0x8L #endif FILEOS 0x4L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "Comments", "Modified by BZCToOn's" VALUE "CompanyName", "Syntheretix" VALUE "FileDescription", "rcversion MFC Application" VALUE "FileVersion", "1, 0, 0, 100" VALUE "InternalName", "rcversion" VALUE "LegalCopyright", "Copyleft (C) Bzc ToOn'S 2002" VALUE "OriginalFilename", "rcversion.EXE" VALUE "PrivateBuild", "RCVERSION-20030212_100" VALUE "ProductName", "rcversion Application" VALUE "ProductVersion", "1, 0, 0, 1" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END What RCVersion do ?RCVersion parses both the Master Header File and the Resources File. Next, according to the information contained in these two files, it generates a file named version.h and updates the Resources File. Output : version.hHere is the output file produced by RCVersion for itself. Command line execution
How to use RCVersion with Visual Studio
Description : RCVersion Output : version.h Dependencies : $(TargetName).h You can now put #include 'version.h' in '$(TargetName).h' or in 'stdafx.h'. DON'T FORGET TO PUT RCVERSION IN PATH or TO SET VISUAL STUDIO EXECUTABLE PATH TO THE DIRECTORY WHERE RCVERSION IS INSTALLED Features![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Bugs & limitationI only tested RCVersion on my own projects. For me it runs fine. I hope for you too :-). HistoryRCVERSION-20030212_100
RCVERSION-20030214_200
Fixed Bugs
BINAIRE DE RCVERSION (http://www.bzctoons.net/IMG/zip/rcversion_demo-2.zip) Zip - 124.3 ko SOURCES VS.NET / C++ / MFC 7 (http://www.bzctoons.net/IMG/zip/rcversion_src.zip) Zip - 22.7 ko Sources de RCVersion [ Accueil ] [ Retour à l'article ] [ Haut ] |
|||
![]() |
![]() |
![]() |