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

Вниз

Помогите найти ошибку   Найти похожие ветки 

 
paul_shmakov   (2001-11-16 16:41) [1]

это вообще какой-то некоректный способ работы с файлами, проецируемыми в память. какая задача?
1. нужно создать объект-ядра "файл, проецируемый в память" (memory mapped file). создаеться он функцией CreateFileMapping. в первом ее параметре нужно передать дескриптор открытого файла или $FFFFFFFF, что говорит системе, что память под этот файл следует взять из страничного файла (или свопа по нашему). только не нужно это значение к HWND приводить, как в примере выше. если мы в этот файл что-то писать собрались, то нужно передать PAGE_READWRITE, а не PAGE_READONLY. размер файла указан верно. следует заметить, что если мы в первом параметре передали $FFFFFFFF, то не можем передать 0 вместо размера. если в первом параметре дескриптор на открытый файл, то можно передать 0 - файл целиком спроецируется.

2. спроецировать файл на адресное пространство процесса функцией MapViewOfFile. по тому значению, которое она вернет можно записать то, что нам нужно.

var
P: PChar;
begin
...
P := MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
StrCopy(P, "что-то, что нужно засунуть в файл");


3. вызвать UnmapViewOfFile и CloseHandle.



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

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

Наверх





Память: 0.44 MB
Время: 0.003 c
14-66338
Христос
2001-11-24 14:42
2002.01.21
WinApi


1-66245
Snake
2002-01-02 17:21
2002.01.21
Запись графики в поток


1-66239
vlv
2001-12-29 19:40
2002.01.21
*.icl


1-66265
Notify
2002-01-03 19:54
2002.01.21
Возможно ли каким либо образом передать курсор из VisualFoxPro в Delphi не копируя его на винт?


1-66259
Quest
2001-12-29 09:44
2002.01.21
Пропадает каретка в режиме редактирования ячейки TStringGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский