-
Задача: считать файл в память с помощью 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.... не работает :( Есть ли способ обойти это (не используя циклическое чтение в локальную переменную)?
-
var P : Pointer; begin .... ReadFile(AFile,ANumberToRead,P^,ANumberReaded,nil);
-
Спасибо!
|