Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Как сделать динамическую структуру данных, доступную из двух и более процессов? 21.09.09 11:07 Число просмотров: 1405
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
Возникла такая необходимость. Суть: есть программа-сервер, которая формирует задания и отдаёт их на выполнение программам-клиентам.
Сервер выделяет память под структуру данных, заполняет её, и запускает клиента, передавая ему в командной строке адрес этой структуры. Клиент получает эту структуру и работает с ней.
Так должно быть в теории, на практике получается вот что. Я пробовал выделять память двумя способами:
lpSv->lpContext[i] = new LPCLIENT_CONTEXT;
и
lpSv->lpContext[i] = (LPCLIENT_CONTEXT) GlobalAlloc(GMEM_FIXED, sizeof(CLIENT_CONTEXT));
И тот и другой способ, как я понял, выделяют память в текущем процессе (т.е. в памяти сервера). Когда клиент пытается обратиться по адресу, переданному ему в командной строке, то вылитает эксепшен.
Есть ли какой-нибудь способ создать разделяемую динамическую структуру данных?
PS. Я знаю, что эту проблему можно решить с помощью именованных каналов и сокетов, но меня интересует именно такой вариант.
|
- [Win32] Как сделать динамическую структуру данных,... - Vedrus 21.09.09 11:07 [1405]
|
|
|