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

Вниз

Буфер чтения для ReadFile   Найти похожие ветки 

 
Kemuri   (2007-11-03 04:18) [0]

Задача: считать файл в память с помощью ReadFile.
В SDK на ф-ию ReadFile дано такое описание:
BOOL ReadFile(
HANDLE hFile, // handle of file to read
LPVOID lpBuffer, // address of buffer that receives data  
DWORD nNumberOfBytesToRead, // number of bytes to read
LPDWORD lpNumberOfBytesRead, // address of number of bytes read
LPOVERLAPPED lpOverlapped // address of structure for data
);
Смотрим 2й пораметр - адрес буфера для получения данных. Но в Windows.pas он описан как Var Buffer, т е использовать указатель, полученый при помощи GlobalAlloc нельзя. И, казалось бы, логичейкий подход
FileHandle:= CreateFile(.....
FileSize:= GetFileSize(FileHandle....
MemH:= GlobalAlloc(FileSize....
MemPointer:= GlobalLock(MemH.....
ReadFile(FileHandle, MemPointer, FileSize....
не работает :(
Есть ли способ обойти это (не используя циклическое чтение в локальную переменную)?


 
Reindeer Moss Eater ©   (2007-11-03 09:09) [1]

var P : Pointer;
begin
....
ReadFile(AFile,ANumberToRead,P^,ANumberReaded,nil);


 
Kemuri   (2007-11-03 19:43) [2]

Спасибо!



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
15-1213784854
oldman
2008-06-18 14:27
2008.08.03
Средняя стоимость. Как правильно?


2-1214917979
Pasha L
2008-07-01 17:12
2008.08.03
Оператор SomeDynamicArray:=nil делает не то, что хотелось бы =)


15-1213618816
No_Dead
2008-06-16 16:20
2008.08.03
Мнение как пользователя и как разработчика


4-1194154748
San1712
2007-11-04 08:39
2008.08.03
Как можно программно отследить перемещения по реестру человека ?


2-1214849705
blazerad
2008-06-30 22:15
2008.08.03
Ввод пароля