Компиляция в несколько раздельных ресурсов из одного prj

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
SNET
Посетитель
Сообщения: 32
Зарегистрирован: 06 июл 2009, 19:01

Компиляция в несколько раздельных ресурсов из одного prj

Сообщение SNET »

Доброе время суток.
Возникла такая проблема: грядет накат очередного патча, и уже известно, что часть старых пользовательских ресурсов (доработанные формы) на новом патче не работает - они попросту не видны. Вопрос решается просто перекомпиляцией форм. Однако форм достаточно много, и по соображениям соотнесения по модулям, они скомпилированы в энное количество ресурсов. Хотелось бы не компилировать ресурсы по одному, а загнать все исходнки в один prj, обработать его строчником, и на выходе получить энное количество требуемых ресурсов. Но: в директиве #make, насколько я понял, выходной ресурс указать нельзя, в конфиге компилятора можно указать только один выходной ресурс. Пока сделал так: в проекте:

Код: Выделить всё

#include ...
...
#make "%srcfile%"
, и bat-файл с энным количеством вызовов типа

Код: Выделить всё

vip.exe myproj.prj /c:vip.cfg  /m /a /N /#srcfile=... /R=myres.res
- в принципе, это позволяет добиться желаемого, но один минус: множественные запуски компилятора с его инициализацией, чтением конфига, etc, существенно тормозят процесс, плюс, бывает, после очередного запуска компилятор валится с рантайм-ошибкой - приходится комментить строки, на которых батник отработал нормально, и повторять снова. Можно ли всё вышеописанное сделать за одну обработку файла проекта?
И вопрос номер 2. Ввиду некоторых нюансов скомпилированные ресурсы надо переподключать в репозитории. Ресурсов, как я уже говорил, достаточно много, пока саппорт по каждому пересчитает права - песня длинная. С другой стороны, репозиторий можно выгрузить в xml - можно ли импортировать вновь только кусочек этого xml c переподключаемыми ресурсами (разумеется, с сохранением валидности xml и его схемы)?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

дык сделайте один рес или 5 - не более того
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

1. один проект в разные ресурсы не получится. мы делаем много проектов, потом создаем батник который эти проекты собирает, там уже можно указать кого куда

2. иногда, переподключаю ресурсы через SQL таблица №79 на редактирование, там подправляю путь.
поскольку права не меняю - ничего не нарушается

З.Ы.: давно зрел вопрос к разработчикам - на фея пересчитывать права на ресурс - если я только меняю его название, а права остаются прежними? Можно же сделать анализ на то менялись права или нет и пересчитывать их только в случае изменения.
Darikon
Постоянный обитатель
Сообщения: 188
Зарегистрирован: 17 июн 2008, 17:07
Откуда: Москва
Контактная информация:

Сообщение Darikon »

Алексей
З.Ы.: давно зрел вопрос к разработчикам - на фея пересчитывать права на ресурс - если я только меняю его название, а права остаются прежними? Можно же сделать анализ на то менялись права или нет и пересчитывать их только в случае изменения.
ПОДДЕРЖИВАЮ!
SNET
Посетитель
Сообщения: 32
Зарегистрирован: 06 июл 2009, 19:01

Сообщение SNET »

Алексей писал(а):1. один проект в разные ресурсы не получится. мы делаем много проектов, потом создаем батник который эти проекты собирает, там уже можно указать кого куда

2. иногда, переподключаю ресурсы через SQL таблица №79 на редактирование, там подправляю путь.
поскольку права не меняю - ничего не нарушается
1. Ну это фактически получается мой случай с многократным запуском компилятора, только еще по энному количеству prj.
2. А вот за этот совет спасибо. Получается, можно просто сгенерить mssql'ный update-скрипт, и прогнать его - секундное дело (я вчера руками 16 ресурсов переподключал в репозитории саппорта около часа).
Darikon
Постоянный обитатель
Сообщения: 188
Зарегистрирован: 17 июн 2008, 17:07
Откуда: Москва
Контактная информация:

Сообщение Darikon »

SNET
Алексей
насчет второго ответа, можно было бы в саппорте в репозитарии конфигуратором открыть поле "Ресурс" на редактирование - но, не сохраняется результат... строку в поле редактирую, но при переходе на другую строку запись не сохраняется.
PViP
Местный житель
Сообщения: 254
Зарегистрирован: 08 июн 2007, 08:26
Откуда: Красноярск
Контактная информация:

Сообщение PViP »

Твое решение

Код: Выделить всё

#outputresource "D:\mydocs\evrz\kadr_zp\res_1.res"

#make "form1.frm"
#make "form2.rtf"

#outputresource "D:\mydocs\evrz\kadr_zp\res_2.res"

#make "form_3.slk"

#outputresource "D:\mydocs\evrz\kadr_zp\res_n.res"

#make "form_n.rtf"
После каждого вызова директивы #outputresource целевой ресурс для компиляции сменяется. Проверено и пользую несколько лет.
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Сообщение Masygreen »

насчет подключения ..йа делаю выгрузку реестра .. потом вставляю туда нужные мне ресурсы или имена и делаю загрузку .. все очень быстро
Время ведет!
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

а я открываю 79-ю таблицу в саппорте на редактирование и правлю имена :)
Ответить