Interapp связь между .net и vb6 - PullRequest
2 голосов
/ 25 февраля 2012

Я видел хорошую статью, объясняющую, как приложения .net взаимодействуют напрямую друг с другом (http://ryanfarley.com/blog/archive/2004/05/10/605.aspx),, но она включала переопределение метода WndProc в вашей форме, чего я явно не могу сделать в vb6.

Существуют ли другие способы взаимодействия между приложениями, которые можно было бы использовать в vb6?

Я собираюсь начать новый проект в .net, но есть формы vb6, которые я не смогу портировать, как только они мне понадобятся. Рассмотрев несколько различных проектов, я решил, что лучше всего просто запустить приложение vb6 в фоновом режиме и, когда ему это сделают, может предоставить любые необходимые мне формы, а затем уведомить приложение .net. когда форма была закрыта.

Ответы [ 2 ]

4 голосов
/ 25 февраля 2012

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

А пока взгляните на именованные каналы:

http://support.microsoft.com/kb/871044

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365590(v=vs.85).aspx

Если ваши программы находятся на разных серверах:

http://msdn.microsoft.com/en-us/library/bb546085.aspx

Это надежный метод межпроцессного взаимодействия, не требующий какой-либо конкретной настройки ОС,доступны как для .NET, так и для VB6.

1 голос
/ 25 февраля 2012

Вы можете сделать ваш VB6 EXE ActiveX EXE (COM-сервер), а затем компонент .Net вызывать его через COM-взаимодействие.Т.е. просто добавьте ссылку в VB6 EXE на вкладке COM диалога ссылок на проекты.

В качестве альтернативы вы можете использовать WCF.Создайте COM-видимую DLL-библиотеку в .Net, чтобы выступать в качестве оболочки для связи WCF, чтобы VB6 мог участвовать.Вы можете использовать именованные каналы: я рекомендую использовать встроенную поддержку .Net в COM-видимой DLL, чтобы VB6 мог вызывать ее.

Отказ от ответственности: я на самом деле не пробовалэто, но это действительно должно быть проще, чем доступ к API именованных каналов из VB6.

...