Malaja
|
|
« : 28-09-2005 14:55 » |
|
Господа, очередной вопрос из серии "с больной головы начальника на здоровую голову подчиненного" : есть файл с расширением exe. Если я правой клавишей мышки щелкну по нему в эксплорере и выберу property, то там окажется кроме всех прочих табов еще и таб "version", где стоит соответствыющая инфа насчет версии, комментарий и еще много всякого ненужного . Теперь вопрос: как это делается? Начальство хочет иметь это для наших экзешников (речь идет о табе "version"). А я с этим никогда не сталкивалась. Информация к размышлению : экзешники я генерирую с помощью makefile - а, т.к. это проекты на Ц (а не Ц++), посему студией пользоваться не выходит. Заранее спасибо.
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Alf
Гость
|
|
« Ответ #1 : 28-09-2005 17:42 » |
|
В ресурсах есть раздел - Version. Там оно все и живет.
|
|
|
Записан
|
|
|
|
Malaja
|
|
« Ответ #2 : 29-09-2005 06:42 » |
|
Alf,
в каких ресурсах? Где их найти? Это установки компилятора или что? Пардон за тупость, но я ничэго не поняла ;-(
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Alf
Гость
|
|
« Ответ #3 : 29-09-2005 06:55 » |
|
Ресурсы - это что-то вроде раздела программы, где хранится всякая всячина, которая зачастую непосредственно к исполняемому коду не относится, но при этом ее неудобно хранить в отдельных файлах, чтобы не растерять. Например, к ресурсам относятся иконы, курсоры, строки (если строки не забивать намертво в код, а подгружать из ресурсов, то при помощи редактора ресурсов можно будет потом менять текст без перекомпиляции; бывает полезно, если, скажем, нужно писать программу для работы в разных странах), диалоговые окна, меню, курсоры и т.п. Всю эту всячину можно подгружать из ресурсов и потом использовать в программе.
Отдельным разделом в ресурсах идет версия, в этом разделе есть также сведения о разработчике, полном имени продукта и т.п, их видно на закладке "Версия".
Я как лентяй, изнеженный "Студией", использую ее встроенный графический редактор ресурсов. В принципе есть возможность описать ресурсы в отдельном текстовом файле, а потом откомпилировать. Но тут я не советчик, сам так не делаю. Нужно документацию глядеть, или спросить какого-нибудь гуру, который руками ресурсы делает.
|
|
|
Записан
|
|
|
|
Malaja
|
|
« Ответ #4 : 29-09-2005 07:25 » |
|
Alf, пардон за тупость - я мыслями была в своем проекте, где никаких ресурсов и т.д. нет, т.к. это ц - шный проект, посему никак не могла понять, о чем ты говоришь. Заклинило В том-то и дело, что это в студии все есть (как и в Одессе ), а вот если без нее компилируешь, тогда как?
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #5 : 29-09-2005 07:31 » |
|
Malaja, а ты не пробовала makefile в студии открыть? Может получится. Тогда добавишь ресурсы. Если нет, то смотри хелп по параметрам - один из них должен подключать файл ресурсов.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Alf
Гость
|
|
« Ответ #6 : 29-09-2005 07:38 » |
|
... а вот если без нее компилируешь, тогда как? За достоверность не ручаюсь, ибо руками никогда не делал. Смутно помнится, что ресурсы описываются в специальном формате в файле .res, потом компилируются, и из них получается .rc Ну а потом уже .rc цепляется к проекту какой-то опцией компилятора. Но сначала ресурсы компилируются отдельно, текст с ресурсами цеплят не получится.
|
|
|
Записан
|
|
|
|
Malaja
|
|
« Ответ #7 : 29-09-2005 08:06 » |
|
Alf, Джон,
попробовала создать rc - файл с информацией о версии и подключить его к маке-файлу, не катит - он падает из-за отсутствия соответствующих инклудов из мфц. Если же я подключаю инклуды, то меня посылают в связи с тем, что мой код - файл имеет расширение .c , а не .cpp...
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #8 : 29-09-2005 08:43 » |
|
Маленько наоборот - .res является компилированной версией .rc - скрипта ресурсов. .rc файлы компилируются rc.exe, а потом линкуются. Параметры rc.exe смотри в MSDN "Using RC (The RC Command Line)"
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #9 : 29-09-2005 08:47 » |
|
Malaja, тебе надо сначала создать свой файл aaaaa.rc, затем откомпилировать его с помощью rc.exe в какой-нить ааааа.res. Затем слинковать с твоим екзешником (параметры не знаю - тоже смотри в МСДН) типа link myfile.obj aaaaa.res
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Malaja
|
|
« Ответ #10 : 29-09-2005 09:39 » |
|
уря! Заработало! В результате: мой .rc - файл имеет вид:
#include "winver.h" // без этого инклуда все безропотно делается, но в результате - ничего не получается ;-)
#ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version //
VS_VERSION_INFO VERSIONINFO FILEVERSION 1,8,1,0 PRODUCTVERSION 1,8,1,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040704B0" BEGIN VALUE "CompanyName", "ISO GmbH\0" VALUE "FileDescription", "saprfcsr_FF\0" VALUE "FileVersion", "1, 8, 1, 0\0" VALUE "InternalName", "saprfcsr_FF\0" VALUE "LegalCopyright", "Copyright (C) 2005\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "saprfcsr_FF.EXE\0" VALUE "ProductName", "Anwendung saprfcsr_FF\0" VALUE "ProductVersion", "1, 8, 1, 1\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x407, 1200 END END
#endif // !_MAC
И маке-файл имеет вид:
rc /i "C:\msvs\VC98\Include" /i "C:\msvs\VC98\MFC\Include" saprfcsr.rc
cl -nologo -Od -G5 -Z7 -Gs -W3 -J -D_X86_ -DWIN32 /V "1.8.1" /I "..\rfcsdk\include" /I "C:\msvs\VC98Include" /I "проектные инклуд-пути" /DEF:saprfcsr.def saprfcsr.c Trace.c saprfcsr.res librfc32.lib C:\msvs\VC98\Lib\libc.lib
Я поубирала в перечислениях файлов и либов почти все, чтобы никого не путать, т.к. к делу это никакого отношения не имеет, а запутать может на раз Единственный оставшийся вопрос - как можно автоматизировать пересчет номера версии? Т.е. сейчас это жестко заданное число и при последующей компиляции оно не изменится. Или еще один вопрос - как можно в маке-файле сделать так, чтобы при компиляции задавался вопрос типа "изменился ли номер версии? если да- введите", посел чего введенная инфа записывалась бы в соответствующую переменную?
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #11 : 29-09-2005 10:34 » |
|
Только ручками В студии это делается с помощью макроса. А в косоли придётся сделать небольшую программку, которая будет открывать rc файл и изменять версию. Для совместной работы лучше сделать bat-файл. Типа @echo off incver.exe vers_dat.h rc /i "C:\msvs\VC98\Include" /i "C:\msvs\VC98\MFC\Include" saprfcsr.rc cl -nologo -Od -G5 -Z7 -Gs -W3 -J -D_X86_ -DWIN32 /V "1.8.1" /I "..\rfcsdk\include" /I "C:\msvs\VC98Include" /I "проектные инклуд-пути" /DEF:saprfcsr.def saprfcsr.c Trace.c saprfcsr.res librfc32.lib C:\msvs\VC98\Lib\libc.lib Кстати #include "winver.h" нужен для дефайнов, которые у тебя используются в ресурсах. Обычно, в студийных проектах это resource.h Предлагается сделать следущее. Вместо VALUE "FileVersion", "1, 8, 1, 0\0" VALUE "ProductVersion", "1, 8, 1, 1\0" сделай VALUE "FileVersion", FILE_VERSION VALUE "ProductVersion", PRODUCT_VERSION вверху .rc инклудируй #include "vers_dat.h" ну и в сам vers_dat.h #define FILE_VERSION "1, 8, 1, 0\0" #define PRODUCT_VERSION "1, 8, 1, 0\0" так же можно сделать другие параметры.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Malaja
|
|
« Ответ #12 : 29-09-2005 10:43 » |
|
Джон, спасибо за информацию! Короче, никакого счастья в личной жизни Придется опять прикладывать ручки Сейчас попробую.
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #13 : 29-09-2005 11:14 » |
|
Да нет, на самом деле один раз сделал, а потом сплошное счастье.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Malaja
|
|
« Ответ #14 : 04-10-2005 12:13 » |
|
Ура, сделала! Теперь уже почти счастье Еще один дурной вопрос: есть бат - файл: start ..\VersionChange.exe rc primer.rc cl primer.c primer.res
Смысл был - стартует программа с диалогом для изменения значений версий (VersionChange.exe), а по окончании уже выполняется компиляция. Но в реальности так не получается ;-( Т.е. задержки для изменения версий не получается. Вопрос - как в бат - файле сделать так, чтобы оно получилось? Или это никак не сделать?
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #15 : 04-10-2005 12:42 » |
|
Ирин, а зачем тебе вообще с БАТом возится? Сделай всё в диалоге!
1. Запускаешь диалог (ты его всё-равно запускаешь) 2. Выбираешь .rc и .c файлы 3. Устанавиливаешь нужные параметры (версию и тп) 4. Жмёшь "Ок"
После того как подготовила версию (это уже у тебя есть)
STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); BOOL bRes = ::CreateProcess(NULL, _T("rc primer.rc"), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
if(!bRes) { // ошибка } WaitForSingleObject(pi.hProcess, INFINITE);
повторяем для "cl primer.c primer.res" Ессно параметры надо сделать динамичными, типа stParam.Format(_T(rc %s),stRCFileName)
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #16 : 04-10-2005 13:00 » |
|
зы По существу вопроса - у тебя start стоит - убери его. Или используй call
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Malaja
|
|
« Ответ #17 : 04-10-2005 15:27 » |
|
Джон, спасибо за идею - пробую
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #18 : 05-10-2005 05:06 » |
|
можно запустить так start /w VersionChange.exe тогда будет дожидаться окончания выполнения
|
|
|
Записан
|
|
|
|
Malaja
|
|
« Ответ #19 : 05-10-2005 06:37 » |
|
Леш, муррр Спасибочки, щас и это опробую Если можно, вопрос не по теме - это все фотографии одного кота или нет? Я до сих пор вспоминаю фотографию, где кот лежит на диване на спинке - это просто натуральное пособие для успокоения нервов! Джон, спасибочки, я попробовала - работает! Я еще сейчас сделаю так, чтобы из экзешника все можно было бы делать и ура - у меня возможностей будет больше, чем у начальства желаний
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #20 : 05-10-2005 06:51 » |
|
кот один и тот же, квартира - одна и та же (кота ) фотка с диваном - сейчас недоступна, но могу другие показать - недавние (кстати 14 коту уже )
|
|
|
Записан
|
|
|
|
Malaja
|
|
« Ответ #21 : 05-10-2005 09:17 » |
|
ого, он у тебя долгожитель А то, что это его квартира, никто и не сомневается У меня в детстве были кошки, поэтому я это хорошо знаю - они занимают собой все и без них уже ничего неинтересно А когда они пропадают, это превращается в трагедию домашнего масштаба.
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #22 : 05-10-2005 09:22 » |
|
а квартира у него 3-комнатная кстати вечером сегодня иду к нему в гости - давно там не был
|
|
|
Записан
|
|
|
|
Malaja
|
|
« Ответ #23 : 05-10-2005 10:03 » |
|
Здорово - он тебе что-нибудь хорошее намурчит Передавай ему привет от меня!
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #24 : 05-10-2005 10:20 » |
|
обязательно : )
|
|
|
Записан
|
|
|
|
|