Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2016, 21:28   #11
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Ну, как вариант, согласен:
http://www.swissdelphicenter.ch/torr...ode.php?id=739
http://stackoverflow.com/questions/9...stem-clipboard

Но остается проблема - кто из объектов, использующих формат, будет освобождать памятьс данными и собственно сам формат, если объект не будет знать - последний ли он, использующий этот формат или нет. Ну и плюс ограничение на число форматов:
Цитата:
Registered clipboard formats are identified by values in the range 0xC000 through 0xFFFF.
В случае с именованными (префиксом "Global\") объектами ожидания последние не будут уничтожены функцией CloseHandle(), пока счетчик их образцов не сравняется с нулем:
Цитата:
Mapped views of a file mapping object maintain internal references to the object, and a file mapping object does not close until all references to it are released.
А что насчет буфера обмена?
"ковыряю изнутри" (с)

Последний раз редактировалось 3D Hunter; 19.03.2016 в 21:42.
3D Hunter вне форума Ответить с цитированием
Старый 20.03.2016, 09:41   #12
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от 3D Hunter Посмотреть сообщение
Задача такая: возможно ли без мьютексов, событий и т.д. сделать синхронный доступ к файловому мэппингу одновременно разными процессами?
Коротко - нет. Если убрать "и т.д." тогда можно сделать свои примитивы, но смысл? А чем мюьтексы не угодили?

Цитата:
Сообщение от 3D Hunter Посмотреть сообщение
ведь насколько я понимаю, сброс файловых буферов приведет к записи на диск, а это синхронная операция, и выполняется она атомарно для переданного количества данных?
Неправильно все понимаете. На уровне драйверов все операции работают асинхронно. Кроме того, даже если допустим, что запись на диск синхронна то запись в память - точно нет. Иными словами, вызов FlushFileBuffers не предотвратит запись в этот кусок памяти из другого потока.

С помощью мьютексов можно добиться всего, что вам надо, включая отслеживание умерших процессов.
Если хотите получить дельный совет лучше опишите ЧТО вам надо а не КАК это делается.

Последний раз редактировалось waleri; 20.03.2016 в 09:48.
waleri вне форума Ответить с цитированием
Старый 21.03.2016, 08:09   #13
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

ЗАДАЧА:
необходимо создать ИМЕНОВАННУЮ структуру выделенной ГЛОБАЛЬНОЙ памяти с возможностью СИНХРОННЫХ операций чтения/записи РАЗНЫМИ процессами из РАЗНЫХ сессий Windows.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 21.03.2016, 11:07   #14
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Нет, вообще-то это решение задачи, а задача это что-то типа "очередь обмена сообщений между процессами".
Кроме того, вы так и не объяснили чем вам не угодили мьютексы.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли создать экономическую игру на флэш? KookRap Помощь студентам 7 29.08.2015 23:02
Возможно ли создать форму в dll ? snake9x Visual C++ 1 08.05.2013 12:09
Возможно ли создать ПРОГРАММУ ? dikzz Помощь студентам 1 26.11.2012 23:11
Возможно ли создать такой пользовательский формат? motorway Microsoft Office Excel 16 21.05.2010 00:45
Возможно ли создать локальные дескрипторы окон? Mixim Win Api 1 26.02.2010 10:27