Как сохранить программу в exe delphi

Иногда возникает необходимость вшить ресурсы в исполняемый файл Вашего приложения (например чтобы предотвратить их случайное удаление пользователем, либо, чтобы защитить их от изменений). Данный пример показывает как вшить любой файл как ресурс в EXE-шнике.

Далее рассмотрим, как создать файл ресурсов, содержащий корию какого-либо файла. После создания такого файла его можно легко прицепить к Вашему проекту директивой . Файл ресурсов, который мы будем создавать имеет следующий формат:

  • заголовок
  • заголовок для нашего RCDATA ресурса
  • собственно данные — RCDATA ресурс

В данном примере будет показано, как сохранить в файле ресурсов только один файл, но думаю, что так же легко Вы сможете сохранить и несколько файлов.

TResHeader = record DataSize: DWORD; // размер данных HeaderSize: DWORD; // размер этой записи ResType: DWORD; // нижнее слово = $FFFF => ordinal ResId: DWORD; // нижнее слово = $FFFF => ordinal DataVersion: DWORD; // * MemoryFlags: WORD; LanguageId: WORD; // * Version: DWORD; // * Characteristics: DWORD; // * end;

Поля помеченны звёздочкой Мы не будем использовать.

Компиляция проекта и сохранение его

Приведённый код создаёт файл ресурсов и копирует его в данный файл:

procedure CreateResourceFile( DataFile, ResFile: string; // имена файлов ResID: Integer // id ресурсов ); var FS, RS: TFileStream; FileHeader, ResHeader: TResHeader; Padding: array [0..SizeOf(DWORD)-1] of Byte; begin FS := TFileStream.Create( // для чтения данных из файла DataFile, fmOpenRead); RS := TFileStream.Create( // для записи файла ресурсов ResFile, fmCreate); FillChar(FileHeader, SizeOf(FileHeader), #0); FileHeader.HeaderSize := SizeOf(FileHeader); FileHeader.ResId := $0000FFFF; FileHeader.ResType := $0000FFFF; FillChar(ResHeader, SizeOf(ResHeader), #0); ResHeader.HeaderSize := SizeOf(ResHeader); // id ресурса — FFFF означает «не строка!» ResHeader.ResId := $0000FFFF or (ResId shl 16); // тип ресурса — RT_RCDATA (from Windows unit) ResHeader.ResType := $0000FFFF or (WORD(RT_RCDATA) shl 16); // размер данных — есть размер файла ResHeader.DataSize := FS.Size; // Устанавливаем необходимые флаги памяти ResHeader.MemoryFlags := $0030; RS.WriteBuffer(FileHeader, sizeof(FileHeader)); RS.WriteBuffer(ResHeader, sizeof(ResHeader)); RS.CopyFrom(FS, FS.Size); if FS.Size mod SizeOf(DWORD) <> 0 then RS.WriteBuffer(Padding, SizeOf(DWORD) — FS.Size mod SizeOf(DWORD)); FS.Free; RS.Free; end;

Читайте также:
Программа что можно собрать из Лего

Программирование на Delphi

В DPR файле совершенно обычного проэкта дельфи можно указать функцию (процедуру) и объявить ее как экспортируемую — синтаксис точно такой-же как при создании стандартной DLL. С таким довеском EXE совершенно нормально компиллируется и работает и как EXE и как DLL (т.е. из нее можно импортировать описанные функции). Зачем это нужно? Была одна задача — делал консоль которая связывала воедино несколько приложений, так экспортные функции позволяли существенно расширять функциональность комплекса. Правда такой EXE все же имеет недостаток — EXE упаковщики сохраняют исполняемую часть и неправильно упаковывают экспортированную.

Как построить проект (в .exe)

Программа и Интерфейс — EXE файл

Добавить данные в EXE файл и получить их

Запустить на выполнение файл от имени любого пользователя

Извлечение из EXE-файла иконки и рисование ее в TImage

Извлечение из EXE-файла иконки и рисование ее в TImage 2

Интегрирование в EXE-шник других файлов

Информация о версии (Version Info) в Delphi EXE

Как вызвать процедуру из чужого ЕХЕ файла

Как использовать параметры коммандной строки

Как скопировать самого себя

Как убить задачу, зная только имя EXE

Как уменьшить размер EXE-файла

Как экспортировать процедуру в EXE файле

Как, зная Handle окна программы, определить имя EXE

Определить тип EXE-файла

Определить тип EXE-файла 2

Получить путь к EXE по дескриптору окна

Прочитать список всех запущенных Exe и проверить, запущен ли Exe

Сохранение и выдёргивание ресурсов в DLL или EXE

Утилиты для сжимания EXE файлов

Хранение данных в EXE-файле

Хранение нескольких различных файлов в одном исполняемом

Читаем заголовок exe файла

Источник: delphibaza.ru

Как сохранить программу в exe delphi

Добрый день(или вечер. незнаю).
Такая проблема:я создал проект(в Делфи7),сделал всё как положено,но как сохранить в ЕХЕ Чтоб я мог её установить или. .
Кто может подскажите пожалуйста можно меня также и поправить. .

Читайте также:
Название программы альянса безопасности пациентов при воз разрабатывающий вопросы гигиены рук ответ

Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
Если не ошибаюсь, для создания установщика нужна Pro версия Delphi
Форумчанин
Регистрация: 11.05.2009
Сообщений: 517
Если не ошибаюсь, для создания установщика нужна Pro версия Delphi
7-я непойдёт?

Что? Где? Когда?
Форумчанин
Регистрация: 14.07.2009

Сообщений: 220

У тебя есть три варианта выхода из сложившейся ситуации:
1)Качать и устанавливать Pro версию Дельфи (хотя мне обычной и вполне хватает);
2)Написать инсталлятор самому:.(Ммм. на форуме не нашел примеров — http://programmersforum.ru/search.php?searchid=317205 ) Если что погугли найдешь все что нужно тебе..
3)Воспользоваться программой с довольно таки интуитивным интерфейсом под названием Smart Install(у меня версия 5.02 и жуву проблем не знаю).

Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили «Титаник».

Форумчанин
Регистрация: 11.05.2009
Сообщений: 517

3)Воспользоваться программой с довольно таки интуитивным интерфейсом под названием Smart Install(у меня версия 5.02 и жуву проблем не знаю).

Я так понял что через Smart Install я смогу создать ЕХЕ так?
Форумчанин
Регистрация: 19.06.2009
Сообщений: 896

Поставь нормальную Delphi 7 и не парь мозг всяким барахлом типа «написать инсталятор самому» и «Smart Install»

Для начала неплохобы понять причину по которой неудайтся создать(скомпилировать код) exe?
Ты знаешь как это делается обычно?

И вобще какаято игра слов «как сохранить в ЕХЕ» и «её установить».

Форумчанин
Регистрация: 11.05.2009
Сообщений: 517

Ты знаешь как это делается обычно?

И вобще какаято игра слов «как сохранить в ЕХЕ» и «её установить».

Неет. вот Это Я Хотел Узнать
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001

У меня такое ощущение, что токпистартеру надо откомпилировать свой проект. Если я прав, то надо выбрать пункт меню Project -> Build

Читайте также:
Вкурсе программа для слежки отзывы форум пользователей

Росли вроде умными, выросли дурнями. (c)А.Васильев
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977

В 7-й Дельфи (как впрочем и в других средах) порядок следующий :
1.Запускаеш среду Delphi (двойной клик по иконке или же C:Program FilesBorlandDelphi7BinDelphi32 ).
2.После появления окна среды Дельфи заходим в главное меню :
File —> SaveAll (на рус. — Файл —> Сохранить все).
3. Появится диалоговое окно сохранения файла с именем Unit1
и предложением сохранить по адресу C:Program FilesBorlandDelphi7BinProjects.
Если согласиться, то все файлы проекта там и сохранятся.Рекомендуется самому создать папку для хранения проектов Дельфи.Например : CДельфиПроектыПроект № 1.
4.После выбора папки ,куда сохраняется проект, там сохранится файл модуля Unit1.pas и вторично запросится сохранение основного файла проекта Project1. Подтверждаем OK и в выбранной папке сохранятся ВСЕ необходимые файлы проекта , созданные автоматически средой..
5. Не пишем никакого кода, а просто жмем зеленый треугольничек в меню, или клавишу F9.
6. Проявится пустое окно нового проекта.
Закройте его и посмотрите в папку с файлами проекта — там уже должен появиться экзешный файл.
Если все это у Вас не происходит, не партесь, установите нормальную среду программирования.
Все предложения по написанию всяких там интерпретаторов, поиску программ компиляторов и т.д. — бред чистой воды.
Нужно затрчивать усилия на освоение процесса программирования , а не на написание или поиск программ, которые и так уже присутствуют в нормальной среде программирования.

И не сомневайся даже . отдых — кайф, работа — лажа!
Последний раз редактировалось DeKot; 22.07.2009 в 23:38 .

Источник: www.programmersforum.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru