------------ Дoбавленo в 03.22:
Короче... Может я и даун, НО
Никак не могу связать бульдога с носорогом
Вот (не полный) код из дельфина: (НО ЭТО ВСЁ ЧТО ЕСТЬ)
- и это рабочее, то есть всё что нужно там уже присутствует
#pas
type
TMemImage = array of Byte;
function CreateMemImage(FileName: String): TMemImage;
var
hFile: THandle;
preBuf: array[1..4096] of Byte;
Copied, ExeSize, Return, i, LastNum: Cardinal;
begin
hFile := FileOpen(FileName, fmOpenRead);
ExeSize := GetFileSize(hFile, nil);
SetLength(Result, ExeSize);
LastNum := 0;
Copied := 0;
FileSeek(hFile, 0, FILE_BEGIN);
while (Copied + 4096) <= ExeSize do
begin
Return := FileRead(hFile, preBuf, SizeOf(preBuf));
for i := 1 to Return do
begin
Result[LastNum] := preBuf[i];
Inc(LastNum);
end;
Inc(Copied, Return);
end;
if ExeSize > Copied then
begin
Return := FileRead(hFile, preBuf, ExeSize - Copied);
for i := 1 to Return do
begin
Result[LastNum] := preBuf[i];
Inc(LastNum);
end;
end;
FileClose(hFile);
end;
Как уж я не крутил - всё ровно ошибки
Может кто поможет и составит КОД - так чтоб его HiAsm проглотил?
В общем все свои варианты выкладывать (в поисках моих кривых рук) не вижу смысла...
Кто может - оптимизируйте с первой строки по последнюю PLESE
Я и в HiAsm-е то не силён, а уж про Delphi - вообще молчу, но очень надо это в HiAsm воткнуть...
------------ Дoбавленo в 03.27:
В объекте "InlineCode" - похоже свои порядки...