Народ, извините, если спрашиваю о том, что уже обсуждалось, НО :
возникла необходимость в About программы вставить номер ее Build'а...
Как это сделать ??? (кроме как ручками прописывать )
Здравствуйте KAY, Вы писали:
KAY>Народ, извините, если спрашиваю о том, что уже обсуждалось, НО : KAY>возникла необходимость в About программы вставить номер ее Build'а... KAY>Как это сделать ??? (кроме как ручками прописывать )
Очнь просто.
1) взять вот эту программку (она на Перле):
$infile = $ARGV[0];
$buildno = $ARGV[1];
$buildno = '__BUILD__' unless $buildno;
open(IN,$infile) || die $!;
open(OUT, ">".($tempfile = "$ENV{'TEMP'}\\$ARGV[0].$$")) || die $!;
$processed = 0;
while( <IN> ) {
m/^\s*#define\s+(\w+)\s+(\w+)\s*/;
if( $1 eq $buildno ) {
$_ = "#define\t$buildno\t".($2+1)."\n";
print "Current build number is: ",($2+1),"\n";
$processed = 1;
}
print OUT $_;
}
close(IN);
close(OUT);
if( $processed ) {
unlink($infile);
rename($tempfile, $infile);
} else {
unlink($tempfile);
die "*** the line \"#define __BUILD__ xx\" was not found.\n"
}
2) сделать файл "buildno.h" вроде вот такого:
#define __BUILDNUMBER__ 1234
3) добавить в проект этот файл и назначить ему вот такой вот Custom Build Step:
input file: .\buildno.h
Commands: perl buildno.pl $(InputPath) __BUILDNUMBER__
Outputs: $(IntDir)\version.tmp
Dependencies: $(IntDir)\version.tmp
4) Запускать и радоваться что макрос __BUILDNUMBER__ увеличивается
с каждой попыткой билда
Теперь по поводу вставления этого дела в About:
Я предполагаю что у тебя в темплейте About-бокса есть статик контрол с ID IDC_BUILDNUMBER
Вот тебе код что надо вставить в OnInitDialog() About-бокса:
я тоже сначала с этим #define и его приращением заморачивался, но потом захотелось, чтобы этот buid совпадал с VERSION ресурсах модуля, да и в About приятнее видеть не только билд, а полную версию и дату сборки, поэтому давненько остановился на связочке — BuildNumberIncreaser by Peter Smolders и классик CVersionApp by Bernd Wissler.
Теперь во всей программе есть доступ ко всем полям из ресурсов VERSION, в AboutDlg же просто пишешь:
BOOL CAboutDlg::OnInitDialog()
{
//...
m_sTimeStamp=theApp.GetAppBuildDate();
m_sNumVer="MyProg v " + theApp.GetAppVersion();
O$>я тоже сначала с этим #define и его приращением заморачивался
Я пошел по другому пути... дело в том что номер билда
(точнее разница между ними) дает определенную информацию о том
сколько промежуточных билдов было между X и Y а, следовательно,
и количестве изменений в программе.
А вот дата бидла такой информации, увы, не дает...
Что же касается VersionInfo, то и я использую ту же методику...
Просто я имею файл version.rc2 в который всключается buildno.h
И номер бидла у меня идет там как 4-я цифра версии...
Вот так вот:
VS_VERSION_INFO VERSIONINFO
.....
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
....
VALUE "ProductVersion", "\""PRODUCT_VERSION1.PRODUCT_VERSION2\""" "\0"
VALUE "FileVersion", "\""PRODUCT_VERSION1.PRODUCT_VERSION2.0.__BUILD__\""" "\0"
Для About-бокса я тоже беру версию из VersionInfo...
Только для этой цели использую класс из статьи Пола Ди Лачиа в MSDN Journal.
Правда от оригинального класса осталось уже весьма немного...
ЗЫ. А если тебе без даты билда жизнь не мила, то можно добавить поле "BuildDate" в
VersionBlock, устанавливать его из встроенного макроса "__DATE__" и дело с концом...
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
O$>я тоже сначала с этим #define и его приращением заморачивался, но потом захотелось, чтобы этот buid совпадал с VERSION ресурсах модуля, да и в About приятнее видеть не только билд, а полную версию и дату сборки, поэтому давненько остановился на связочке — BuildNumberIncreaser by Peter Smolders и классик CVersionApp by Bernd Wissler.
O$>Теперь во всей программе есть доступ ко всем полям из ресурсов VERSION, в AboutDlg же просто пишешь:
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте TepMuHyc, Вы писали:
TMH>>
TMH>>#define __BUILDNUMBER__ 1234
TMH>>
OE>я тоже сначала с этим #define и его приращением заморачивался, но потом захотелось, чтобы этот buid совпадал с VERSION ресурсах модуля, да и в About приятнее видеть не только билд, а полную версию и дату сборки, поэтому давненько остановился на связочке — BuildNumberIncreaser by Peter Smolders и классик CVersionApp by Bernd Wissler.
первая ссылочка уже не работает (много времени прошло с открытия этой темы) — не подскажете, где теперь можно взять BuildNumberIncreaser'а?
Спасибо.
Здравствуйте, e-smirnov, Вы писали:
ES>первая ссылочка уже не работает (много времени прошло с открытия этой темы) — не подскажете, где теперь можно взять BuildNumberIncreaser'а?
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, e-smirnov, Вы писали:
ES>>первая ссылочка уже не работает (много времени прошло с открытия этой темы) — не подскажете, где теперь можно взять BuildNumberIncreaser'а?
OE>где авторская страничка не знаю, а dll-ка вот — BuildNumberIncreaser
А как его подключать?!
Здравствуйте, LaFlour, Вы писали:
OE>>где авторская страничка не знаю, а dll-ка вот — BuildNumberIncreaser LF>А как его подключать?!
положить dll в \Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns\, потом в студии Tools — Customize — Add-Ins and Macro Files поставить галочку, ну и панелька должна появится с двумя кнопками через нее настройки increaser-а делаются.
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, LaFlour, Вы писали:
OE>>>где авторская страничка не знаю, а dll-ка вот — BuildNumberIncreaser LF>>А как его подключать?! OE>положить dll в \Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns\, потом в студии Tools — Customize — Add-Ins and Macro Files поставить галочку, ну и панелька должна появится с двумя кнопками через нее настройки increaser-а делаются.