![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Есть ли в Visual studio како-йнибудь счётчик версий, номер которой можно получить каким-нибудь макросом?
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
Какой нибудь может и есть! ![]() -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Допустим счётчик билдов.
Хотя я думал что есть какя-нибудь внутрення тулза, которая позволяет программировать номер версии, типа: 1.n, где n - номер билда; а потом получать данное значение в коде, ввиде набора char'ов, что-нить типа __VERSION__. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Народ короче велосипеды пишет, потому что гениальный мелкоСофта не догадался сделать такой фишки. Чем же они там от студии к студии занимаются?
![]() Это сообщение отредактировал(а) Rickert - 2.4.2009, 09:45 -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Лично для меня это не надо, если уж релиз готов то его в редакторе ресурсов за 30 секунд можно вставить версию
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Dem_max, неудобно. ИМХО: номер версии - это вещь о которой программист вообще задумываться не должен ни на одну наносекунду.
Это сообщение отредактировал(а) Rickert - 2.4.2009, 10:50 -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
На сборочном конвейере такое делается всегда.
Например Automated Build Studio имеет спец step для этих целей. С чего бы изменение версий должно быть в языке?! языку на версию наплевать. лично я не задумываюсь о версии - пусть конвеер сам считает как ему надо. Например у нас это Major.Minor.BuildVersion(increment each build).Subversion(or perforce) revision of source code with builded. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Вообще-то вопрос ро конкретную среду разработки.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
вопрос, конечно интересный с точки зрения версионализации конечного продукта
но он на самом деле отпадает, если решается каким-нибудь CVS или SVN (больше возможностей) но если опираться на этот счетчик в качестве индикатора по отлову багов, то майкрософт просто предоставил решать эту проблему по своему усмотрению, не ограничивая конечного пользователя (программиста) а Build-event'ы - это как раз механизм, позволяющий такое творить формат версии продукта ведь не закреплен жестко, так что любая попытка навязать майкрософтом свое видение на проблему будет скорее расценено как ущемление прав и т.д. и т.п. (а у них с этим строго) так что любое готовое решение - скорее "вариации на тему...", а не конструирование велосипеда -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
GremlinProg |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
посмотрел я некоторые счетчики и как-то не понравилось мне, что они копаются в моих же потрохах
такое лучше делать в отдельном rc-файле мой вариант - это шаблон ресурса, который парсится утилитой в момент его компиляции и генерирует на его основе rc этот rc можно подключить прямо в проект, тогда и счетчик будет работоспособным и конфликтов с существующими ресурсами не будет я приложу свой VerBuilder, а пока, как это работает: 1. подключаем в проект простой текстовый файл 2. пишем в нем нечто вроде такого:
3. Сохраняем, щелкаем на этом файле правой кнопкой мыши в Solution Explorer'е, выбираем Properties 4. Выбираем все конфигурации, ну или Release, кому как удобнее 5. Раскрываем Custom Build Step :: General 6. В Command Line пишем VerBuilder "$(InputName).ini" "$(InputFileName)" "$(InputName).rc" 7. В Outputs пишем $(InputName).rc 8. Сохраняем настройки и нажимаем Ctrl + F7 (компиляция ресурса). Если все сделано правильно, то в директории, где лежит этот текстовый файл появятся два дополнительных файла с тем же именем, но с расширениями .ini и .rc 9. Снова открываем Solution Explorer и добавляем в него файл(с расширением .rc Ну вот и все, теперь при каждом билде, этот ресурс будет обновляться в соответствии с новой версией а в консоли Output при этом, вы всегда будете наблюдать запись:
это просто пример, на самом деле, вы можете формировать свой вывод и шаблон так, как вам будет сподручнее спецификация шаблона такая:
формат командной строки:
файл VerBuilder.exe перед использованием как у меня в примере, необходимо поместить в какую-нибудь рабочую директорию MSVC, например в $(VSInstallDir)Common7\Tools\, в 9-й версии, обычно это C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools в младших версиях примерно так же Кто работает с мастерами, могут соорудить простенький мастер версий В моей версии rc.exe двухбайтовые кодировки не поддерживаются, так что конкретно при построении RC, не пользуйтесь флагами -uUe, файл генерируется правильно, даже с БОМами, но RC-компилятор просто не заточен на них, не понимает (это удобно в других случаях, например когда вам нужно версию хранить не в VERSIONINFO, а например в текстовом ресурсе, или просто во внешнем файле) по умолчанию, если флаги не определены, то считается, что вход и выход в кодировке ANSI вложенные echo наследуются, т.е. обрабатываются как парные скобки (ошибок тут не будет, даже если вы пропустили какую-нибудь скобку, максимум - просто до конца файла вывод будет дублирован в консоли) Присоединённый файл ( Кол-во скачиваний: 12 ) ![]() -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||||||
|
|||||||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
если кому-то захочется расширить функционал транслятора, вот его исходный код:
на самом деле, тут можно добавить более гибкую работу с INI: дать возможность создать несколько счетчиков, а не один, как у меня; модифицировать эскейп-ключи; добавить комбинационную логику и т.п. вобщем, все открыто, пользуйтесь Это сообщение отредактировал(а) GremlinProg - 3.4.2009, 13:16 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
GremlinProg |
|
||||||||||||||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
немного расширил возможности, пока время есть:
1. добавлен флаг -r (read-only) если он присутствует в опциях, то увеличение счетчика не происходит (только трансляция его в файл с текущим значением) зачем это нужно? чтобы на основе одного счетчика можно было собирать любое число шаблонов и только один, контрольный, будет увеличивать счетчик, остальные - только читать (в таком случае, следите за порядком включения шаблонов в цепочку компиляции, контрольный шаблон должен быть либо в ее начале, либо в конце, чтобы не было смешивания версий в промежуточных шаблонах) 2. расширена размерность счетчика, по-честному ), теперь он 64-битный 3. несколько упрощена спецификация:
через точку, думаю, будет меньше путаницы 4. счетчик переведен в натуральный диапазон, т.е. отрицательных значений он теперь никогда не сгенерирует пример шаблона со всеми вариантами:
третья строка - это обычный формат версии, который и нужно передавать в ресурсы Есть еще один плюс флага -r (read-only): отпадает необходимость усложнять транслятор, т.е. не нужно заводить переменное число счетчиков, этого эффекта можно добиться цепочкой шаблонов, к примеру, если у нас 2 счетчика: 2,34,0,6 - для файла и 1,0,0,1 - для продукта, то:
этот шаблон сгенерирует, к примеру выход для первого счетчика:
если этот выход снова подать в качестве шаблона, то получится второй счетчик:
и т.д. исходник скорректированного билдера:
если используется следующий шаблон:
то эту версию продукта можно обнаружить по следующим полям:
Программно можно обратиться к ним двумя способами: 1. Используя API для работы с версиями, например как показано здесь: http://www.ncsystems.ru/ru/programming/articles/fileversion/ 2. Используя API для работы с ресурсами:
этот вариант хоть и работает согласно спецификации ресурса VERSIONINFO, но использовать его рекомендуется только в случае, когда ресурс версии имеет идентификатор, отличный от VS_VERSION_INFO = 1 либо когда таких ресурсов несколько в обычном случае, ресурс можно использовать так:
или так:
вот Rickert, тебе и макрос ) Присоединённый файл ( Кол-во скачиваний: 9 ) ![]() -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||||||||||||||||||||
|
|||||||||||||||||||||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Господа вам не лениво было писать все это ? Столько коду и чтобы показать какая у вас версия в релизе.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
не показать, Dem_max, а учесть в ней реальное число билдов
ну и плюс обратная связь, соответственно -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Не, ребят, спасиб конечно за усердия, но я думал есть простая утилита внутри VS. Раз нет - вопрос снят. Спасибо за дискуссию!
solved ![]() -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
теперь есть, и именно внутри VS но в принципе я тебя понимаю: кому-то и линукс - не виндовс, а кому и API - не басик -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
GremlinProg |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
сделал еще несколько апгрейдов:
1. увеличение счетчика теперь производится прямо в тексте скрипта, VerBuilder теперь ++, доступны следующие команды: %%++<счетчик> %%<счетчик>++ это, соответственно префиксная и постфиксная формы <счетчик> - любой из регистров: qw, dw.0, dw.1, w.0 ,w.1 и т.д. 2. введен "скрытый режим", в котором отключается вывод в файл <output>:
3. добавлена поддержка русских символов в принципе, это актуально только для stdout'а, т.е. в консоли MSVC "output" теперь русские кракозябры читаемы, можно спокойно писать комментарии на родном, албанском ) 4. адаптирована поддержка как для ANSI, так и для Юникод-среды, но если вам вдруг понадобятся двухбайтовые кодировки, то ANSI их не понимает, для такого нужно компилировать в юникоде 5. флаг -r - остался с прежней нагрузкой: не модифицирует версию для следующего билда (не сохраняет изменения на диске), хотя теперь это можно делать и скриптовыми инструментами 6. если есть ошибки в скрипте, то они оформляются в стандартном формате для MSVC: "файл(номер строки): описание", так вы уже точно не потеряетесь, прямо в среде, двойной клик на такой строке переместит вас в шаблон на строку с ошибкой таким образом, все фишки можно одним махом оценить следующим скриптом:
если у вас уже есть начатый счетчик, то просто поставьте временно для него флаг -r(readonly), чтобы этот скрипт его не сбил Это сообщение отредактировал(а) GremlinProg - 6.4.2009, 14:49 Присоединённый файл ( Кол-во скачиваний: 14 ) ![]() -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
модификация в скрипте сделана для того, чтобы не ковыряться в ini-файле, увеличивая старшие версии по ситуации (число изменений, число исправленных ошибок и т.п.) их же обычно вручную ставят, а так вот будет подспорье без выковыривания старших, младших версий в hex-форме
кому не охота все это собирать, прилагаю бинарник, скомпилированный в юникод-среде кто понимает, о чем речь, могут сами собрать (или собрать из этого что-нибудь более интересное); функция translate теперь имеет более демократичную форму, по спецификации scanf:
так, вы можете добавлять свои шаблоны, с одним лишь условием: формат шаблона для translate должен заканчиваться последовательностью %n - это маркер позиции, а параметр для него - адрес переменной marker да, еще одно замечание: этот исходник корректен, если его компилировать уже только в девятой версии MSVC, поскольку от седьмой она отличается стандартными объявлениями функций _winput_s_l и _input_s_l, если вам нужно собрать исходник в седьмой - ищите соответствующие прототипы, все есть в SDK (ну и на форуме я их выкладывал) Присоединённый файл ( Кол-во скачиваний: 7 ) ![]() -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: нет Всего: 8 |
При билде версия обновляется только, если был изменен текстовый файл (созданный на шаге 1). Как сделать, чтобы она обновлялась при каждом билде? |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
GremlinProg, и вообще проект на github или bitbuket - пусть там живет )
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
я прикрепил корректно настроенную заготовку проекта, только VerBuilder.exe заменил на vc.exe - так проще и понятнее, так что просто переименуй VerBuilder.exe в vc.exe напоминаю, он должен быть расположен где-нибудь здесь: ...\Common7\Tools\ в принципе можно, репозиторий я создам, мелочь конечно, хотя с svn и не сравнится но я до сих пор пользуюсь этой штукой: среди десятков одинаковых с виду билдов разбирать где-что реализовано а где нет без нее проблематично Присоединённый файл ( Кол-во скачиваний: 19 ) ![]() -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
репозиторий создан здесь: http://github.com/mega-t72/vc/
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Maxepsut |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.9.2011 Репутация: нет Всего: нет |
GremlinProg, большое спасибо за код! Нарочно здесь зарегился, чтобы его скачать, но что-то не выходит: вместо файла с архивом открывается HTML-файл, с которым неизвестно что делать... Подскажите, пожалуйста, что не так. P.S. Заодно уж сразу: в каких версиях Visual Studio это работает? Конкретно интересуют: v.6.0 и 2008. Это сообщение отредактировал(а) Maxepsut - 23.9.2011, 11:59 |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
заготовка есть на github: http://github.com/mega-t72/vc/ жмем Downloads, Download .zip в скаченном архиве папка test, это и есть заготовка Добавлено через 9 минут и 23 секунды по крайней мере с 6-й версии vc.exe можно подключить к любому проекту, но его последние исходники уже адаптированы под vs2008, поэтому, если охота что-то дописать в самом vc, следует открывать его проект в 2008 и выше работает ![]() -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Maxepsut |
|
||||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.9.2011 Репутация: нет Всего: нет |
Ясно. А не осталась ли где-то версия vc, которую можно дописать и в 6-ой Студии (к 2008-ой ещё не привык)? Большое спасибо! Всё вроде бы действительно работает как часы, за одним исключением, о котором на всякий случай уточню. Это так и должно быть, что если при перепостроении тестового проекта у меня открыто Окно ресурсов (сам RC-файл не открыт), и на вопрос Студии: "Заменить RC-файл?" я отвечаю "Да", она тутже слетает? Хотя файл изменяется. И вообще: можно ли как-нибудь избежать этих вопросов, которые также относятся к сформулированному выше утверждению:
P.S. И пара процедурных моментов: 1) как здесь полноценно пользоваться Цитатой? У меня так и не получилось цитировать других участников с автоматической вставкой их имён и ссылок на их сообщения (как это само происходит в других форумах): всё делал вручную... 2) как отключить встроенное автоисправление грамматики ![]() Это сообщение отредактировал(а) Maxepsut - 23.9.2011, 12:43 |
||||
|
|||||
GremlinProg |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
нет, а ее и не было ) первые варианты написаны уже в 2005-й у меня не слетает, но возможно потому, что я смотрю это в 2010-й студии могу предложить другой вариант включения version.rc в проект: 1. удаляем version.rc из проекта 2. создаем новый файл ресурсов, например: vc-test.rc 3. открываем version.txt и добавляем в конец пустую строку, сохраняем version.txt (так требует rc, по крайней мере, у меня) 4. открываем диалог "Resource includes..." для vc-test.rc и добавляем в "Read-only symbol directives" строку
все, теперь в заготовке есть обычные ресурсы и ресурс vc Добавлено через 9 минут и 49 секунд ![]() выделяешь текст в сообщении и жмешь кнопку "быстрая цитата", правильная цитата будет вставылена в поле быстрого ответа -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
Maxepsut |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.9.2011 Репутация: нет Всего: нет |
Ясно. Чтож, тем больше поводов для перехода на 2008-ю.
В этом пункте, наверное, имелся в виду не 'version.txt', а 'version.rc'? Во всяком случае, 2008-я ругнулась у меня на него. Всё так и сделал, ресурс забилдился, но на этапе Компоновки появилась ошибка:
Откуда взялось это "дублирование ресурсов"? |
|||
|
||||
GremlinProg |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
нет, именно version.txt, т.к. на его основе и создается version.rc, в version.rc делать каких-либо изменений нет смысла, т.к. он всякий раз пересоздается, при компиляции шаблона version.txt - шаблон version.rc - результат применения шаблона
я это делал в 2010 студии, там ошибок не было, возможно в ранних версиях следует создать проект заново, попробую завтра сделать это в 2008-й -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
в 2008 тоже все прошло без ошибок ( видимо, это был какой-то единичный сбой ), я обновил репозиторий, добавил еще одну заготовку " test-hidden-mode", уже со всеми изменениями, описанными выше -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |