Подскажите, пожалуйста, что делать, если надо создать файл в оперативной памяти, заполнить его данными, работать с ним как с обычным файлом, обращаться к нему, в том числе, с помощью функции LoadFromFile из стандартного объекта.
Мне товарищи подсказали, спасибо им,следующий код:
MemHnd := CreateFileMapping(HWND($FFFFFFFF),nil,PAGE_READWRITE,0,MemFileSize,MemFileName);
Дальше я попытался,читая help'ы Windows SDK, по аналогии написать следующий нехитрый код.
bl := false;
MemHnd := OpenFileMapping(FILE_MAP_WRITE,bl,MemFileName);
for i := 1 to 10 do
begin
Buf := i;
q := i;
WriteFile(MemHnd,Buf,1,q,nil);
end;
OpenFileMapping(FILE_MAP_READ,bl,MemFileName);
for i := 1 to 10 do
begin
q := i;
ReadFile(MemHnd,Buf,1,q,nil);
ShowMessage(IntToStr(buf));
end;
CloseHandle(MemHnd);
MemHnd := NULL;
end;
В результате, при инсталяции появляется предупреждение:
[Hint] Unit1.pas(56): Value assigned to 'MemHnd' never used
В файле, если он создался, похоже ничего нет.
Может быть подскажете, что не так сделал?
И можно ли такой файл читать функцией LoadFromFile?