Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
Soft   (2003-07-01 15:22) [0]

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

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

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


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


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


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


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

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


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

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


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

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


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

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


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

И что за ф-я ?


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

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
);


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

Soft © (03.07.03 18:51)

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


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

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



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

Форум: "WinAPI";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.072 c
1-10744
Jacob
2003-08-18 12:23
2003.09.04
Сделать невидимым столбец в TListView


14-10956
VEG
2003-08-13 17:51
2003.09.04
Дообновлял свою BIOS...


1-10715
Jao
2003-08-15 17:41
2003.09.04
как программно добавить комментарий в xmldocument?


14-10869
Soft
2003-08-18 16:26
2003.09.04
Освоить Linux ненамного труднее, чем Windows ХР???


1-10791
Просто гость
2003-08-22 20:29
2003.09.04
Дескриптор окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский