Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2011.10.02;
Скачать: [xml.tar.bz2];

Вниз

Как при компиляции автоматически поместить исходный код   Найти похожие ветки 

 
apic   (2010-03-01 16:33) [0]

Как при компиляции автоматически поместить исходный код (pas, dpr файлы) в исполняемый файл в виде ресурса(ов).


 
12 ©   (2010-03-01 16:43) [1]

батником?


 
Юрий Зотов ©   (2010-03-01 16:46) [2]

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


 
Сергей М. ©   (2010-03-01 16:50) [3]

Если набор юнитов (количество и их имена) в составе проекта неизменно, то достаточно добавить в проект rc-файл с описанием списка включаемых в ресурсы файлов.
Тип ресурса - например, RT_RCDATA


 
apic   (2010-03-01 17:13) [4]

создаю rc файл следующего содержания:
Unit1 RCDATA "Unit1.pas"
Unit2 RCDATA "Unit2.pas"
Unit3 RCDATA "Unit3.pas"
прикручиваю его директивой {$R source.rc}
Выдает ошибку:
 [Error] RLINK32: Unsupported 16bit resource in file "source.rc"


 
apic   (2010-03-01 17:14) [5]

файл source.rc в одной папке с файлами проекта


 
Вася   (2010-03-01 17:27) [6]

попробуй так:

{$R "source.res" "source.rc"}


 
Игорь Шевченко ©   (2010-03-01 17:29) [7]


> прикручиваю его директивой {$R source.rc}


{$R source.res}

brcc32 source.rc


 
Сергей М. ©   (2010-03-01 20:58) [8]


> прикручиваю его директивой {$R source.res}


А это самый source.res появляется в результате компиляции проекта, к которому подключен source.rc


 
apic   (2010-03-02 06:53) [9]

как подключить этот source.rc. Стыдно сказать, но я даже так попробовал: {$R "source.res" "source.rc"}, не помогает. А на счет того, что res можно приделать, так это я знаю, вопрос как сделать, что бы он автоматически сам создавался, а не предварительно его компилировать brcc32.


 
Leonid Troyanovsky ©   (2010-03-02 07:34) [10]


> apic   (02.03.10 06:53) [9]

> как подключить этот source.rc

Shift+F11

--
Regards, LVT.


 
apic   (2010-03-02 07:51) [11]

Спасибо Leonid Troyanovsky !!!!!!!!!!!!!!!!!!!!!!!!!! Подключил! Оказывается {$R "source.res" "source.rc"} работает только писать нужно сразу после program Project1; Но лучше конечно Shift+F11


 
Leonid Troyanovsky ©   (2010-03-02 07:56) [12]


> apic   (02.03.10 06:53) [9]

> так попробовал: {$R "source.res" "source.rc"}, не помогает

Можно и так, но, чтобы оно работало,
вставить надо в dpr до раздела uses.

--
Regards, LVT.


 
apic   (2010-03-02 12:39) [13]

Теперь вопрос, как это все дело выгрузить в файл(ы). Пытаюсь процедурой:
procedure(ResType, ResName, ResSaveName : String);
var
 Res : TResourceStream;
begin
   Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
   Res.SavetoFile(ResSaveName);
   Res.Free;
end;

Вызываю ExtractRes("RCDATA", "Unit1", "c:\unit.pas");
Говорит, что ресурс с таким именем не найден.


 
apic   (2010-03-02 12:50) [14]

Теперь вопрос, как это все дело выгрузить в файл(ы). Пытаюсь процедурой:
procedure ExtractRes(ResType, ResName, ResSaveName : String);
var
Res : TResourceStream;
begin
  Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
  Res.SavetoFile(ResSaveName);
  Res.Free;
end;
Вызываю("RCDATA", "Unit1", "c:\unit.pas");
Говорит, что ресурс с таким именем не найден.


 
apic   (2010-03-02 15:58) [15]

Все работает если указываю не стандартный тип ресурса:
Unit1 PASFILE "Unit1.pas"
Unit2 PASFILE "Unit2.pas"
Unit3 PASFILE "Unit3.pas"

И все хорошо извлекается:
ExtractRes("PASFILE" , "Unit1.pas", "c:\Unit1.pas");
Кто нибудь может объяснить, что здесь происходит? RCDATA особый тип что-ли? Кстати в редакторе ресурсов тоже интересно все выглядит...


 
Leonid Troyanovsky ©   (2010-03-02 17:59) [16]


> apic   (02.03.10 12:50) [14]

>   Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));

Res  := TResourceStream.Create(Hinstance, "Unit1" , RT_RCDATA);

RT_RCDATA - константа, определяющая, что это ресурс типа RCDATA.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2010-03-02 18:47) [17]


> apic   (02.03.10 12:50) [14]

> Теперь вопрос, как это все дело выгрузить в файл(ы).

А каков смысл оных маневров?

--
Regards, LVT.


 
Германн ©   (2010-03-03 02:26) [18]


> А каков смысл оных маневров?

Мне тоже интересно.


 
apic   (2010-03-03 06:51) [19]

Насчет маневров - исходники все время теряю, хочу чтобы с ехе-шником всегда были и чтобы без редактора ресурсов можно было извлечь. А на счет Res  := TResourceStream.Create(Hinstance, "Unit1" , RT_RCDATA); думаю так и должно быть - щас проверю...


 
apic   (2010-03-03 06:57) [20]

Да TResourceStream.Create(Hinstance, "Unit1" , RT_RCDATA); работает! Спасибо!


 
Anatoly Podgoretsky ©   (2010-03-03 08:43) [21]

> Leonid Troyanovsky  (02.03.2010 18:47:17)  [17]

Все свое ношу с собой.


 
KSergey ©   (2010-03-03 10:57) [22]

> apic   (03.03.10 06:51) [19]
> Насчет маневров - исходники все время теряю, хочу чтобы
> с ехе-шником всегда были

Завести репозиторий где-либо на бесплатном сервере исходников (том же гугле) + получить версионность и багтрекинг - это, конечно, не наш путь
Мы свой велик изобретть будем.
Только стоя, только в гамаке.


 
DVM ©   (2010-03-03 12:21) [23]


> apic   (03.03.10 06:51) [19]
> Насчет маневров - исходники все время теряю

Давай и Delphi туда. А то вдруг потеряешь :) И Windows.


 
apic   (2010-03-04 16:34) [24]

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


 
KilkennyCat ©   (2010-03-05 02:37) [25]


> apic   (04.03.10 16:34) [24]

Это ты мощно загнул...
не забудь делать копию екзешника.
Только эту копию в ресурс этого же екзешника не вставляй, не надо...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2011.10.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.004 c
2-1307636761
Тимофей1
2011-06-09 20:26
2011.10.02
floattostrF форматирование числа в текст


15-1307584738
brother
2011-06-09 05:58
2011.10.02
Обновление прошивки в DI-804HV сбросятся ли настройки?


2-1307642941
Gu
2011-06-09 22:09
2011.10.02
Передача имени процедуры в Dll и вызов ее там


15-1307638058
uniken1
2011-06-09 20:47
2011.10.02
Драйвер под заказ


1-1267355128
AlexChudd
2010-02-28 14:05
2011.10.02
Выделение ячейки в StringGrid по нажатию правой кнопки мыши





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский