Написание инсталятора
От: TRANSiST0R  
Дата: 24.12.01 13:32
Оценка:
Хочу написать собственный инсталятор. Инсталироваться всё должно из одного ехе файла. Причём не обязательно ужимать файлы. Вообще-то планируется извлекать только один файл. Где бы глянуть на исходник по проще. Я пишу на С++.
Пробовал через ресурсы, но не получилось. Вот что вышло:
HGLOBAL hgl=NULL;
char * lpBuffer;
HRSRC rc=NULL;
HANDLE hUpdateRes;
BOOL result;
HANDLE hInputFile;
DWORD dwFileLength;
DWORD dwBytesRead,dwSize;
BYTE * pFileData = NULL;
hInputFile = CreateFile("c:\\Temp\\command.com",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);
if(hInputFile == INVALID_HANDLE_VALUE)
{
NULL;
}
dwFileLength = GetFileSize(hInputFile,NULL);
pFileData = (BYTE*)malloc(dwFileLength);
if(!pFileData)
{
NULL;
}
ReadFile(hInputFile,pFileData,dwFileLength,&dwBytesRead,NULL);


hUpdateRes = BeginUpdateResource("foot.exe", FALSE);
if (hUpdateRes == NULL)
{
// ErrorHandler("Could not open file for writing.");
}

result = UpdateResource(hUpdateRes,MAKEINTRESOURCE(IDR_PEXE2),"RT_EXE",MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),pFileData,dwFileLength);

if (result == FALSE)
{
// ErrorHandler("Could not add resource.");
}

if (!EndUpdateResource(hUpdateRes, FALSE))
{
// ErrorHandler("Could not write changes to file.");
}
FreeResource(hgl);


Это было взято из нескольких источников,поэтому получилась каша, которая к тому же ещё и не работает.
Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.