Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.08;
Скачать: CL | DM;

Вниз

Как сохранить ЕХЕ файл из ресурса на харде?   Найти похожие ветки 

 
electric   (2003-08-25 14:35) [0]

Как сохранить ЕХЕ файл из ресурса на харде?


 
HolACost!   (2003-08-25 14:56) [1]

TResourceStream - если прямо в лоб и на Дельфи!


 
N169   (2003-08-25 14:57) [2]

Извиняюсь что на Це++, но идея будет понятна:

В файле .rc:

175 DOCUMENTS DISCARDABLE "mylib.dll"
176 DOCUMENTS DISCARDABLE "myexe.exe"

В приложении:

PCHAR resid[] = { "mylib.dll", "#175",
"myexe.exe", "#176",
NULL,NULL };

// Извлекает файлы из ресурсов
void ExtractInstallFiles(void)
{
AnsiString AppDir = ExtractFilePath(Application->ExeName);
AnsiString FileName = "";

HRSRC hres;
ULONG size,cb;
PUCHAR ptr;
ULONG index = 0;
HANDLE hfile;

while (resid[index])
{
hres = FindResource(NULL,resid[index+1],"DOCUMENTS");
size = SizeofResource(NULL,hres);
ptr = (PUCHAR)LoadResource(NULL,hres);
if (ptr)
{
FileName = AppDir + AnsiString(resid[index]);
hfile = CreateFile(FileName.c_str(),GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_AT TRIBUTE_NORMAL,NULL);
WriteFile(hfile,ptr,size,&cb,NULL);
CloseHandle(hfile);
};
index += 2;
};

};


 
electric   (2003-08-25 15:21) [3]

Я не проф. Мне сложно так врубится по одному слову =( или на другом языке. Дайте примерчик!


 
HolACost!   (2003-08-25 15:25) [4]

А что нажать F1 не судьба?
To All: пример откудато скоммунизденый (уверен, что все права в резерве)

procedure TForm1.ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, RT_VERSION);
Res.SavetoFile(ResNewName);
Res.Free;
end;


 
HolACost!   (2003-08-25 15:26) [5]

Вместо RT_VERSION надо ResType


 
electric   (2003-08-25 15:56) [6]

не работает если ResType ! да и ваще никак не работает! может обясните попонятнее, а то совсем я запутался =(


 
HolACost!   (2003-08-25 16:07) [7]

Клиника, дорогой мой!
Я думал догадаешься, как поправить!

procedure TForm1.ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, PChar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;

Вызов

ExtractRes("Version", "#1", "c:\ver.txt");


PS:
Ты хоть знаешь, как ресурсы выглядят? Как они структурированы?


 
electric   (2003-08-25 19:49) [8]

нет не знаю как они выглядят и как они структурированы. Поэтому я так и не сделал эту прогу =( скажи что обозначает "Version", "#1", "c:\ver.txt"


 
electric   (2003-08-25 20:05) [9]

нет не знаю как они выглядят и как они структурированы. Поэтому я так и не сделал эту прогу =( скажи что обозначает "Version", "#1", "c:\ver.txt"



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

Текущий архив: 2003.09.08;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.01 c
1-24466
Maks
2003-08-28 07:57
2003.09.08
drag & drop


1-24461
AndreySoft
2003-08-28 10:38
2003.09.08
Как упорядочить строки в ComboBox в алфавитном порядке


4-24740
Danchik
2003-07-08 13:59
2003.09.08
работа с Dll


3-24361
Bes
2003-08-17 05:18
2003.09.08
Паралельная работа с БД...


3-24336
denick
2003-08-18 13:10
2003.09.08
Помогите пожалуйста с отчетом.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский