|
Вопрос # 3 507/ вопрос открыт / |
|
Здравствуйте!подскажите пожалуйста как зделать чтобы моя программа сделаная в дельфи сама компелировала ехе файлы.
например "конструктор програм для авторунов сд-двд дисков"
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: cock (статус: Посетитель)
Вопрос отправлен: 9 декабря 2009, 13:51
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, cock!
Никто не делает обычно такие программы самокомпилируемыми. Есть два подхода.
- использовать скриптовый язык. Например в JVCL библиотеке есть пара компонентов, которые позволяют писать дефлиподбоный код, и даже использовать формы.
- используется файл с данными, которые интерпретируются потом.
Но у обоих этих методов есть как бы "недостаток" - кроме исполнимого файла есть ещё один-два.
Но на самом деле это не проблема. Например, можно использовать winrar, который может сделать самораспаковывающийся архив и запустить вашу программу. и рядом распакует все дополнительные файлы.
Второй вариант - файл с конфигурацией приклеивается в конец исполнимого файла или прямо помещается в ресурсы. Для этого компилятор не надо. а извлечь назад просто. Склеить два файла можно как програмно, так и с консоли, где то так
copy project.exe+data.bin newproject.exe
В процессе работы приложение может открыть свой же исполнимый файл на чтение и вычитать с конца файла данные. Самая сложная задача - это решить сколько надо вычитывать. я бы сделал так. в начало файла data.bin поместил бы последовательность байт, которая будет всегда одинаковой (как бы контрольная, что это начало) - сигнатура называется.
А в самый конец файла записал бы размер данных.
При чтении мы просто читаем последние 4 байта и узнаем размер данных. потом проверяемся. И ко всему, данные потом не нужно сохранять на диск отдельно. можно читать даже функциями reset/read
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 9 декабря 2009, 14:43
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 9 декабря 2009, 14:36; участников в обсуждении: 2.
|
min@y™ (статус: Доктор наук), 9 декабря 2009, 14:19 [#1]:
Цитата (cock):
чтобы моя программа сделаная в дельфи сама компелировала ехе файлы
Ну, если в такой формулировке, то можно прикрутить к программе внешний компилятор от Delphi dcc32.exe.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
cock (статус: Посетитель), 9 декабря 2009, 14:24 [#2]:
а по подробней можно как это делаеться и где это взять.
|
|
cock (статус: Посетитель), 9 декабря 2009, 14:25 [#3]:
если можно то покажите пример
|
|
min@y™ (статус: Доктор наук), 9 декабря 2009, 14:36 [#4]:
Цитата (cock):
где это взять
Внешний компилятор находится в папке с Delphi. У меня, например, тут: d:\Soft\Delphi7\Bin\DCC32.EXE
Цитата (cock):
если можно то покажите пример
Пример не можно, ибо никогда такими делами я не занимался, но почитать хэлп от этого компилятора советую.
Ты давай лучше расскажи, какую вешь тебе сотворить нужно, а то опять попахивает сагой про X-Y-Z.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|