Страница 1 из 1

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

Добавлено: 03 сен 2009, 17:32
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 и его схемы)?

Добавлено: 03 сен 2009, 22:54
edward_K
дык сделайте один рес или 5 - не более того

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

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

З.Ы.: давно зрел вопрос к разработчикам - на фея пересчитывать права на ресурс - если я только меняю его название, а права остаются прежними? Можно же сделать анализ на то менялись права или нет и пересчитывать их только в случае изменения.

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

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

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

Добавлено: 04 сен 2009, 16:51
Darikon
SNET
Алексей
насчет второго ответа, можно было бы в саппорте в репозитарии конфигуратором открыть поле "Ресурс" на редактирование - но, не сохраняется результат... строку в поле редактирую, но при переходе на другую строку запись не сохраняется.

Добавлено: 26 ноя 2009, 14:14
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 целевой ресурс для компиляции сменяется. Проверено и пользую несколько лет.

Добавлено: 27 ноя 2009, 14:52
Masygreen
насчет подключения ..йа делаю выгрузку реестра .. потом вставляю туда нужные мне ресурсы или имена и делаю загрузку .. все очень быстро

Добавлено: 29 ноя 2009, 16:42
Алексей
а я открываю 79-ю таблицу в саппорте на редактирование и правлю имена :)