Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CreateFileMapping(INVALID_HANDLE_VALUE... можно ли 
V
    Опции темы
kosmonaFFFt
Дата 15.6.2008, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: нет
Всего: 5



Доброго всем времени суток.
Нагуглил тут только что пример по отображаемым на память файлам с таким вот куском кода
Код

hMapping = CreateFileMapping(
    INVALID_HANDLE_VALUE, DEFAULT_SECURITY, PAGE_READWRITE,
    0, 1024, "FileMap-AB-874436342"
  );

и вошел немного в ступор, можно ли передавать в CreateFileMapping в качестве
дескриптора файла INVALID_HANDLE_VALUE и какой будет результат???
В MSDN особо ничего не понял по этой теме, кроме того, сто надо указать размеры области памяти.
Мне вообще то надо сделать передачу данных из одного приложения в другое с помощью проецируемых файлов (другие способы передачи просьба не предлагать), так вот отсюда вопрос - какие последствия будут от передачи INVALID... в CreateFileMapping и можно ли это использовать в контексте моей задачи?

Заранее спасибо.


--------------------
user posted image
PM MAIL ICQ   Вверх
586
Дата 15.6.2008, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



Вполне допустимое значение.
Цитата(msdn)
hFile 
[in] A handle to the file from which to create a mapping object. 
The file must be opened with access rights that are compatible with the protection flags that the flProtect parameter specifies. It is not required, but it is recommended that files you intend to map be opened for exclusive access. For more information, see File Security and Access Rights.

If hFile is INVALID_HANDLE_VALUE, the calling process must also specify a mapping object size in the dwMaximumSizeHigh and dwMaximumSizeLow parameters. In this scenario, CreateFileMapping creates a file mapping object of a specified size that the operating system paging file backs, instead of by a named file in the file system. 

PM   Вверх
EnergoHokum
Дата 16.6.2008, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 600
Регистрация: 10.11.2006
Где: Россия, Ставропол ь

Репутация: 3
Всего: 6



Если первый параметр -- handle существующего файла, открытого с допустимыми правами доступа, то будет расшарен именно этот, существующий файл. А если первый параметр равен INVALID_HANDLE_VALUE -- то будет создан новый объект shared memory с объёмом, не превышающим задаваемый в параметрах dwMaximumSizeHigh ("верхняя половинка" размера) и dwMaximumSizeLow ("нижняя половинка" размера).
PM MAIL ICQ   Вверх
W4FhLF
Дата 16.6.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



Цитата(kosmonaFFFt @  15.6.2008,  20:52 Найти цитируемый пост)
так вот отсюда вопрос - какие последствия будут от передачи INVALID... в CreateFileMapping и можно ли это использовать в контексте моей задачи?


Последствия будут такие, что твоя задача будет решена именно так, как и требуется smile


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
kosmonaFFFt
Дата 17.6.2008, 06:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: нет
Всего: 5



Спасибо за информацию, особенно EnergoHokum за объяснения на русском языке. smile


--------------------
user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0482 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.