Бывает необходимость «запилить» какой-то файл в сам exe’шник программы (например, тот же инсталлятор :)).
В этой статье постараюсь описать, как «запилить» дверь любой файл в exe программы.
Для начала нужно создать файл с расширением .rc , с таким содержанием:
Prog EXEFILE MyProg.exe
Prog — имя этого файла, может быть любым (может не совпадать с настоящим именем файла).
EXEFILE (BITMAP, CURSOR, ICON, WAVE) — тип файла
MyProg.exe — сам файл, т.е. путь к нему.
Далее компилим этот файл с помощью brcc32.exe (находиться в папке bin дельфи).
Скомпилированный файл (с расширением .res) копируем в папку нашей программы, после открываем дельфи, и после
1 |
{$R *.dfm} |
пишем
1 |
{$R Имя_файла.res} |
Теперь, чтобы распаковать куда-то наш файл используем следующую функцию:
1 2 3 4 5 6 7 8 9 10 11 |
procedure ExtractRes(ResType, ResName, ResNewName : String); var Res: TResourceStream; begin Res:=TResourceStream.Create(Hinstance, Resname, Pchar(ResType)); Res.SavetoFile(ResNewName); Res.Free; end; //использовать так: ExtractRes('EXEFILE', 'prog', ('путь,_куда_распаковывать')); |
Вроде, всё 🙂