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

Вниз

проблема с WriteFile   Найти похожие ветки 

 
Dot   (2005-08-27 12:13) [0]

Приветствую Вас, Мастера.
В челях самопознания написал программу, которая будет доставать из своих ресурсов EXE-файл и сохранять его на диск.
******* test.rc ********
Num EXEFILE C:\call.exe
************************
Скомпилировал brcc32.exe test.rc
call.exe - просто выводит MessageBox

******* ExRes.dpr ******
program ExRes;
uses Windows;
{$R test.res}
var
hRes  : HRSRC;
hRD   : HGLOBAL;
rSize : DWORD;
hMem  : Pointer;
hFile : THandle;
iBW   : Cardinal;
begin
 hRes := FindResource(0,PChar("EXEFILE"),Pchar("Num"));
 hRD  := LoadResource(0, hRes);
 hMem := LockResource(hRD);
 rSize:= SizeofResource(0,hRes);
 hFile:= CreateFile(PChar("1.exe"),GENERIC_WRITE,FILE_SHARE_READ,nil,CREATE_NEW,0,0);

WriteFile(hFile,hMem,rSize,iBW,nil);
CloseHandle(hFile);

end.
************************
Вот у меня проблема с параметром iBW, в документации написано NumbersOfByte, этот код работает на си если писать так
DWORD iBW;
WriteFile(hFile,hMem,rSize,&iBW,0);
однако в дельфи файл создается, такой же по размеру как и должен быть, однако половина файла забита нулями и он откаывается работать.
Помогите пожалуйста, как надо объявить правильно эту переменную.


 
Джо ©   (2005-08-27 12:22) [1]


> В челях самопознания написал программу

В целях самопознания медитируют, а не программы пишут %)


 
tesseract ©   (2005-08-27 12:32) [2]

попробуй hMem^


 
Dot   (2005-08-27 13:07) [3]

tesseract ©   (27.08.05 12:32) [2]
попробуй hMem^

Огромное Спасибо!
Не можешь ли объяснить, почему имеено так? что было неправильно?


 
Marser ©   (2005-08-27 14:21) [4]


> Не можешь ли объяснить, почему имеено так? что было
> неправильно?

Оператор ^ обозначает доступ к данным, на которые указатель ссылается. Иначе ты получаешь доступ к значению самого указателя :-)


 
tesseract ©   (2005-08-29 10:31) [5]

Вообще литературы для начинающих крайне мало. А вещь то нужная.


 
Brother   (2005-09-09 11:28) [6]

Эх, информация, вкликая вещь!
И тот силен у кого ее много! :)



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
6-1119358405
bugman
2005-06-21 16:53
2005.10.16
UDP port mapping


1-1127395980
.::AndreW::.
2005-09-22 17:33
2005.10.16
На мультемелийной клаве есть три кнопки запуск Word, Exel...


3-1125403395
<Lelik>
2005-08-30 16:03
2005.10.16
Глюки параметров ХП FireBird


2-1126083541
worldmen
2005-09-07 12:59
2005.10.16
Форматирование даты.


1-1127802387
Jolik
2005-09-27 10:26
2005.10.16
Нашел в сети апдейт на Delphi7 - а он гад...