Как лучше всего взаимодействовать между двумя программами на одной машине? - PullRequest
2 голосов
/ 04 декабря 2009

Мне нужно передать некоторые данные (целые числа) из одной программы (C ++) в другую (C #) Какой самый быстрый способ сделать это?

P.S .: ОС: Windows XP

Ответы [ 7 ]

9 голосов
/ 04 декабря 2009

Мое личное предпочтение для этого, учитывая, что вы используете C ++ и C # оба, и это в той же системе, будет использовать Pipes.

Они работают очень хорошо из собственного кода (C ++) , а также из C # через NamedPipeClientStream и NamedPipeServerStream .

Однако есть и другие опции для Межпроцессное взаимодействие , любой из которых будет работать.

2 голосов
/ 04 декабря 2009

Ознакомьтесь с этой статьей для ознакомления с перечнем доступных опций. Ваша лучшая ставка, вероятно, труба .

2 голосов
/ 04 декабря 2009

Общая память была бы самой быстрой, но именованные каналы тоже довольно быстрые и намного проще в использовании.

1 голос
/ 04 декабря 2009

почтовых ящиков можно использовать, если вы общаетесь в одностороннем порядке и ваши сообщения невелики. В противном случае я бы рекомендовал использовать именованные каналы (как рекомендовали другие).

вот что-то на почтовых ящиках

Все механизмы IPC

1 голос
/ 04 декабря 2009

Использование файлов было бы самым простым способом. Если вам нужна скорость, то сетевые сокеты могут быть хорошим вариантом.

0 голосов
/ 04 декабря 2009

Моя рекомендация: сокеты или RPC. Я не знаком с трубами, но, похоже, это тоже популярный вариант.

0 голосов
/ 04 декабря 2009

На всякий случай полезно, если не критично, что это межпроцессное взаимодействие (если требуемая функциональность может быть преобразована в библиотеку DLL, которая и использует, или похожа), вы можете использовать Common Language Runtime для взаимодействия.

...