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

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

Файл памяти [D6, WinXP]


HardClubber ©   (2003-01-01 16:15:00) 

Как создать файл памяти в родительском процессе, и как им пользоваться в процессе потомке?


Alex Konshin   (2003-01-03 08:17:00) [1]

Я же написал "если", остальное я оставил в качестве домашнего задания. Человек вроде понял.


Юрий Зотов   (2003-01-03 07:59:00) [2]

> если дочерний процесс наследует все от родителя

Сам по себе - не наследует, для этого нужно проделать несколько телодвижений.

Чтобы дочерний процесс унаследовал хэндл проекции от родителя, во втором параметре CreateFileMapping (lpFileMappingAttributes) нужно в поле bInheritHandle указать True. Кроме того, при вызове CreateProcess в параметре bInheritHandles тоже должно быть True.


HardClubber   (2003-01-02 03:14:00) [3]

thanks


Alex Konshin   (2003-01-01 18:30:00) [4]

Имеется в виду Memory-Mapped File? Тогда, по идее, если дочерний процесс наследует все от родителя, то OpenFileMapping. В любом случае можно шарить file-mapping создавая именованные объекты.
Короче, подробнее читай MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/sharing_files_and_memory.asp

Вообще-то возможно достать handle и неименованного объекта через Native API. Надо?


Наверх

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