Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2011, 09:03   #1
mrbadge
Пользователь
 
Регистрация: 26.01.2011
Сообщений: 48
По умолчанию Компиляция в программе

Такой вопрос:
Необходимо компилировать похожие программы из родительской. Раньше с таким никогда не сталкивался, поэтому даже не знаю с чего начать (посмотрел в гугле - нашел с использованием встроенного компилятора дельфи + три его библиотеки(минимум)). Есть ли возможность уменьшить этот набор до минимума? Какой самый простой способ такой компиляции?
Заранее спасибо

Последний раз редактировалось mrbadge; 13.02.2011 в 10:13.
mrbadge вне форума Ответить с цитированием
Старый 13.02.2011, 10:06   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

написать собственный компилятор
p51x вне форума Ответить с цитированием
Старый 13.02.2011, 10:19   #3
mrbadge
Пользователь
 
Регистрация: 26.01.2011
Сообщений: 48
По умолчанию

Спасибо, конечно, за содержательный ответ)возможно ли просто присоединить дельфийский компилятор и его библиотеки в ресурсы и использовать от туда?
mrbadge вне форума Ответить с цитированием
Старый 13.02.2011, 10:45   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

давайте разложим вашу задачу на составные: (+ что вы вроде как знаете, - что нет)
1)файл в ресурс -
2)распаковка файла из ресурса -
3)применение файла(компиля и тп) +
4)удаление файла +(ну я на это надеюсь)

ЗЫ: напрямую использовать компиль из ресурса не выйдет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.02.2011, 12:49   #5
CepbIu
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
давайте разложим вашу задачу на составные: (+ что вы вроде как знаете, - что нет)
1)файл в ресурс -
2)распаковка файла из ресурса -
3)применение файла(компиля и тп) +
4)удаление файла +(ну я на это надеюсь)

ЗЫ: напрямую использовать компиль из ресурса не выйдет.
если нужен будет пример по первым двум пунктам - выложу

а нельзя ли пойти другим путём:
те как я понимаю пишется так называемый "билдер", только нужно изменить значение пары констант? тогда можно просто извлекать файл из ресурса и патчить его
CepbIu вне форума Ответить с цитированием
Старый 13.02.2011, 14:17   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

такое можно сделать, рассказать как?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.02.2011, 15:10   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
и патчить его
Исполнимый файл?? Это не так просто. Да и потом, антивирусам это может не понравится...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.02.2011, 15:41   #8
CepbIu
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Исполнимый файл?? Это не так просто. Да и потом, антивирусам это может не понравится...
Код:
procedure PatchFile(Address: Cardinal; Bytes: Byte);
var
  F        : File of Byte;
  ChW      : Char;
  ChR      : Char;
begin
  inc(i);
  AssignFile(F, FileName);
  Reset(F);
  Seek(F, Address);
  BlockRead(F, ChR, 1);
  Seek(F, Address);
  ChW:=Char(Bytes);
  BlockWrite(F, ChW, 1);
  CloseFile(F);
end;

Последний раз редактировалось Stilet; 13.02.2011 в 16:32.
CepbIu вне форума Ответить с цитированием
Старый 13.02.2011, 15:42   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Исполнимый файл?? Это не так просто. Да и потом, антивирусам это может не понравится...
1)почему не так просто?
2)чем антивиру не понравится то что я изменил то что извлек из самого себя?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.02.2011, 15:46   #10
CepbIu
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
1)почему не так просто?
2)чем антивиру не понравится то что я изменил то что извлек из самого себя?
человек мог подумать что обсуждается написание джоинера и тд
а если как и сейчас, планируется изменить какую либо константу\надпись\etc, то
1) не знаю, всё очень легко
2) без понятия
CepbIu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
компиляция DeDoK Общие вопросы Delphi 4 02.11.2010 18:21
компиляция hasana Паскаль, Turbo Pascal, PascalABC.NET 14 16.05.2010 15:32
компиляция com m0t0d0r Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 24.01.2009 11:49
Компиляция в Qt Diman2008 Qt и кроссплатформенное программирование С/С++ 6 16.11.2008 20:57
Компиляция Lonix Общие вопросы Delphi 2 16.09.2007 16:22