Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Передача данных между процессами (http://forum.oszone.net/showthread.php?t=140877)

garkin123 23-05-2009 20:44 1125886

Передача данных между процессами
 
Два процесса. Набор данных, который нужно передать из первого в оконную процедуру второго.
Простая передача указателя, я думаю, здесь не поможет? Это же будет локальный адресс для первого процесса.
Как можно представить эту информацию в ином виде, доступном для считывания из второго процесса? К примеру привести указатель на локальную память в "глобальный" вид. Либо считать память из памяти первого процесса по локальному указателю.

pva 25-05-2009 07:14 1126840

Раздел MSDN называется Interprocess Communication
http://msdn.microsoft.com/library (в поиске набираешь что нужно)
вкратце варианты:
1. через внешний файл
2. через общую память (тоже через файл, типа swap-а)
3. перенаправление потоков ввоба-вывода (только при старте процесса)
4. через pipe, mailslot
5. DDE
6. ActiveX
По указателю взять не получится (если не вести отладку)

DillerInc 25-05-2009 11:46 1126977

garkin123, в первом процессе создаёшь file mapping с именем.Туда помещаешь свои данные.Во втором процессе открываешь этот file mapping по этому самому имени.Секция видна в обоих процессах.Это называется разделяемая память.
Вот функции,которые тебе понадобятся:
CreateFileMapping
MapViewOfFile
OpenFileMapping
UnmapViewOfFile

garkin123 25-05-2009 14:48 1127117

Спасибо, уже сделал через мапинг.

К списку способов передачи стоит также добавить оконное сообщение WM_COPYDATA.


Время: 02:42.

Время: 02:42.
© OSzone.net 2001-2025