Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как смапировать файл в память


Soft ©   (2003-07-01 15:22:00) 

Есть библиотека работы с Tiff файлами, всем класная, но есть одна проблема, ей для работы нужен файл, открываемый на диске, по имени. Передача ей открытого дескриптора файла ничего не дает. Можно ли временно создать файл в памяти, чтобы обращение к нему было как к обычному? Библиотека изначально делалась под Linux, тоесть бесплатная и с исходниками, работа с обычными Dll под Win.

Возможно таки придется создавать временные файлы на диске, так как файлы хранятся в базе в полях типа Blob.

Извините за сумбурность изложенных мыслей.


Soft   (2003-07-04 11:12:00) [1]

Альтернатива тогда только создание временных файлов.


Игорь Шевченко   (2003-07-04 09:07:00) [2]

Soft © (03.07.03 18:51)

Функция конечно интересная, но каким образом она может заменить файл на диске, к которому чужой код обращается по имени ?...


Soft   (2003-07-03 18:51:00) [3]

The CreateFileMapping function creates a named or unnamed file-mapping object for the specified file.

HANDLE CreateFileMapping(

HANDLE hFile, // handle to file to map
LPSECURITY_ATTRIBUTES lpFileMappingAttributes, // optional security attributes
DWORD flProtect, // protection for mapping object
DWORD dwMaximumSizeHigh, // high-order 32 bits of object size
DWORD dwMaximumSizeLow, // low-order 32 bits of object size
LPCTSTR lpName // name of file-mapping object
);


AlexRush   (2003-07-03 16:24:00) [4]

И что за ф-я ?


Soft   (2003-07-02 16:10:00) [5]

Спасибо всем уже нашел в Винде API функцию создания смапированных псевдо-файлов в памяти. Таки сумели они содрать эту фичу с Юникса.


Игорь Шевченко   (2003-07-01 17:52:00) [6]

Soft © (01.07.03 16:00)

Отнюдь не издеваюсь. Это проще, чем искать способы передавать имя файла, который на самом деле не файл :) А еще проще - через временные файлы с атрибутом FILE_ATTRIBUTE_TEMPORARY: The file is being used for temporary storage. File systems attempt to keep all of the data in memory for quicker access rather than flushing the data back to mass storage. A temporary file should be deleted by the application as soon as it is no longer needed


Morfein   (2003-07-01 16:35:00) [7]

Всего-то дела, убрать функцию открытия дискового файла (CreateFile, OpenFile или что-то подобное) и передавать в функцию значение Handle"а, которое записывать в используемый библиотекой Handle... там больше удалять, чем писать :)


Soft   (2003-07-01 16:00:00) [8]

Исходники на Ansi С, а я пишу на Delphi. Там 2 метра исходников, вы что издеваетесь?


Игорь Шевченко   (2003-07-01 15:32:00) [9]


> но есть одна проблема, ей для работы нужен файл, открываемый
> на диске, по имени


Если есть исходники, почему бы их не поправить ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо