![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вытащить файл из ресурса ??? [D7]
rlzz © (2006-07-20 23:20:00)Собственно вот такой вапрос....
Нужно зделатьчто то на подобие инсталлера
,я тут подумал что файлы можно запихнуть в ресурсфайл , а вот вытащить их как от туда записав на винт??
rlzz (2006-07-21 00:02:00) [1]спс поробуем щас
oxffff (2006-07-21 00:02:00) [2]Или даже так.
Что еще проще.
Шпиён (2006-07-21 00:00:00) [3]Или так:
файл MY.RC
TEST RCDATA "TEST.EXE"
brcc32 -32 MY.RC
{$R MY.RES}
..................
procedure TForm1.Button1Click(Sender: TObject);
begin
with TResourceStream.Create(0,'TEST',RT_RCDATA) do
try
SaveToFile('aaa.exe')
finally
Free
end
end;
Джо (2006-07-20 23:57:00) [4]Вот, примерно, так. Все проверки в примере исключены для ясности.
var
RcInfo: HRSRC;
Rc: THandle;
Data: Pointer;
begin
RcInfo := FindResource(0,ResourceName,ResourceType);
Rc := LoadResource(0,RcInfo);
Data := LockResource(Rc);
end;
ВDataбудем иметь указатель на первый байт данных, занимаемых нужным ресурсом.
oxffff (2006-07-20 23:57:00) [5]rlzz
функции эти и я нашел.
И что не понятного.
Создаешь res файл с ресурсом RCDATA c твоим файлом.
Компилируешь свое приложение с этим res файлом
Далее
FindResource
Потом LoadResource
и Далее LockResource
Получаешь указатель на данные своего файлика
И далее сохраняешь куда хочешь
Шпиён (2006-07-20 23:53:00) [6]TResourceStream
rlzz (2006-07-20 23:53:00) [7]{$R <файл ресурсов>},
компиленный который res workshopom например
rlzz (2006-07-20 23:49:00) [8]запускаем прогу ,жмем кнопку , файл должен быть на харде ,например в корне диска С
oxffff (2006-07-20 23:48:00) [9]И что вы понимаете под ресурс файлом
oxffff (2006-07-20 23:45:00) [10]Тогда подробнее суть поясните
rlzz (2006-07-20 23:42:00) [11]или innoSetup он в исходниках
а если по подробнее с маааленьким примером кода
функции эти и я нашел
oxffff (2006-07-20 23:32:00) [12]LoadResource, LockResource и FindResource(Ex).
Или еще проще использовать installShield и Wise Install