![]() |
Передача данных между процессами
Два процесса. Набор данных, который нужно передать из первого в оконную процедуру второго.
Простая передача указателя, я думаю, здесь не поможет? Это же будет локальный адресс для первого процесса. Как можно представить эту информацию в ином виде, доступном для считывания из второго процесса? К примеру привести указатель на локальную память в "глобальный" вид. Либо считать память из памяти первого процесса по локальному указателю. |
Раздел MSDN называется Interprocess Communication
http://msdn.microsoft.com/library (в поиске набираешь что нужно) вкратце варианты: 1. через внешний файл 2. через общую память (тоже через файл, типа swap-а) 3. перенаправление потоков ввоба-вывода (только при старте процесса) 4. через pipe, mailslot 5. DDE 6. ActiveX По указателю взять не получится (если не вести отладку) |
garkin123, в первом процессе создаёшь file mapping с именем.Туда помещаешь свои данные.Во втором процессе открываешь этот file mapping по этому самому имени.Секция видна в обоих процессах.Это называется разделяемая память.
Вот функции,которые тебе понадобятся: CreateFileMapping MapViewOfFile OpenFileMapping UnmapViewOfFile |
Спасибо, уже сделал через мапинг.
К списку способов передачи стоит также добавить оконное сообщение WM_COPYDATA. |
Время: 02:42. |
Время: 02:42.
© OSzone.net 2001-2025