"Расшарить" память для общего доступа

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

"Расшарить" память для общего доступа

Сообщение VKS » 03.09.2009 (Чт) 13:55

Добрый день!!
Помогите пожалуйста в поиске решения - перерыл весь форум и гугл - безрезультатно..

Буду краток.
Что нужно:
требуется чтобы 2 программы могли обмениваться между собой - передача параметров.
т.е. (как бы хотелось в идеале) первая программа выделяет память (примерно 1-2 кб), делает её "общей", запускает другой процесс с параметром где находится выделенный кусок в памяти. Вторая программа читает (и только читает) с этой области памяти байты и при этом не падает (access violation).
Реально ли вообще это реализовать?

Следующие методы не предлагать:
winsock, файл на диске, pipe

Зачем мне это нужно (почему к примеру не через реестр или файл):
нужно избежать записи на диск, т.к. оспользоваться будет носитель ssd, а передача параметров будет довольно частая - в пределах 1 - 100 в сек.
ресурс у ssd дисков не слишком высок

Заранее огромное спасибо за помощь. Если вдруг что не так - сильно не бейте. С нетерпением жду конструктивных предложений.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: "Расшарить" память для общего доступа

Сообщение alibek » 03.09.2009 (Чт) 15:55

Введи в поиске IPC и выбирай по вкусу.
Lasciate ogni speranza, voi ch'entrate.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: "Расшарить" память для общего доступа

Сообщение Debugger » 03.09.2009 (Чт) 16:13

требуется чтобы 2 программы могли обмениваться между собой - передача параметров.
т.е. (как бы хотелось в идеале) первая программа выделяет память (примерно 1-2 кб), делает её "общей", запускает другой процесс с параметром где находится выделенный кусок в памяти. Вторая программа читает (и только читает) с этой области памяти байты и при этом не падает (access violation).
Реально ли вообще это реализовать?

Но откуда вторая программа узнает, где находится этот кусок памяти?

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: "Расшарить" память для общего доступа

Сообщение pronto » 03.09.2009 (Чт) 17:07

Можно посмотреть в сторону FileMapping
Есть готовый пример из книги, но на С++...
Вложения
FileMapping.djvu
(125.79 Кб) Скачиваний: 34
O, sancta simplicitas!

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Re: "Расшарить" память для общего доступа

Сообщение VKS » 03.09.2009 (Чт) 17:53

Debugger писал(а):
Но откуда вторая программа узнает, где находится этот кусок памяти?


читайте внимательнее ...запускает другой процесс с параметром (адресом) где находится выделенный кусок в памяти...
Последний раз редактировалось VKS 03.09.2009 (Чт) 17:58, всего редактировалось 1 раз.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: "Расшарить" память для общего доступа

Сообщение Viper » 03.09.2009 (Чт) 17:56

Дык, кирпич же готовый есть.
Весь мир матрица, а мы в нем потоки байтов!

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Re: "Расшарить" память для общего доступа

Сообщение VKS » 03.09.2009 (Чт) 18:04

Viper

вот за это спасибо - то что доктор прописал...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 24

    TopList