Межпроцессное взаимодействие: сервер MFC, клиент .NET C # - PullRequest
0 голосов
/ 26 апреля 2010

У меня есть два настольных приложения MFC C ++, которые обмениваются строковыми командами с использованием именованных каналов. Все хорошо и надежно.

Теперь я должен добавить клиентов, написанных на .NET C #, используя элементы управления SilverLight. Я знаю, как делать именованные каналы в C #. Но моя первая попытка смешать их не удалась: невозможно подключить клиентов к работающим серверам.

Что-то мне не хватает, и эта схема "смешанных орехов" должна работать? или это "языковой барьер"?

Ответы [ 3 ]

0 голосов
/ 27 апреля 2010

Если вы готовы иметь дело с COM Interop , возможно, есть выход.

Это позволит вам общаться с локальным приложением с COM-взаимодействием. Затем вы можете передать сообщения из Silverlight в приложение, которое вы хотите, используя все доступное, так как COM-объект не имеет тех же ограничений, что и Silverlight. Для этого потребуется Silverlight 4, а также настройка этой цели COM Interop на стороне клиента.

0 голосов
/ 23 июня 2012

Для любого, кто просматривает этот старый поток, одним из способов будет создание дуплексной службы wcf с использованием http-опроса - клиент silverlight может затем связаться со службой wcf, а служба может передавать сообщения в приложение MFC.

Больше чтения:

http://msdn.microsoft.com/en-us/library/cc645027(v=vs.95).aspx

0 голосов
/ 27 апреля 2010

Предполагая, что вы пытаетесь использовать WCF для связи, NetNamedPipeBinding недоступна для Silverlight, насколько я знаю, и если вы попытаетесь выполнить P / Invoke, который будет заблокирован из приложения Silverlight, работающего внутри браузера из-за безопасности ограничения браузера.

У вас есть сообщения для подключаемых модулей Silverlight. У Пола Стаббса есть сообщение в блоге , показывающее, как это работает в Silverlight 3.

Пока ваше приложение Silverlight работает в браузере и вам приходится взаимодействовать с сервером MFC, вы должны реализовать какой-то другой протокол, кроме именованных каналов. И я не думаю, что вам разрешено использовать P / Invoke , если приложение Silverlight работает вне браузера. Это ограничение Silverlight .

...