Подходит ли COM для меня? - PullRequest
       38

Подходит ли COM для меня?

0 голосов
/ 03 октября 2011

В моей работе есть приложение, написанное на VB6.Мне поручено написать другое, отличное приложение на C # .NET.Мне не разрешено изменять код VB6, но мне нужно вызывать функцию (из моего приложения .NET) каждый раз, когда в приложении VB6 вызывается определенная функция.

Мой начальник рекомендовал использовать COM или DCOM дляэта задача.Я не знаком ни с одной из этих тем, и у меня возникают проблемы с поиском учебника, который я могу легко понять и который относится к моей задаче.

Могу ли я сделать это с помощью COM или мне придется изменить существующий VB6код

Ответы [ 3 ]

2 голосов
/ 03 октября 2011

Вам нужно выставить функцию в VB6 как COM (ActiveX DLL). Это прямо вперед. http://vb -helper.com / howto_activex_dll.html

Вызов COM-объекта тоже прост. http://www.c -sharpcorner.com / UploadFile / psingh / CallingCOMComponentFromCSharp12022005231615PM / CallingCOMComponentFromCSharp.aspx

1 голос
/ 03 октября 2011

Мне кажется, что у вас есть приложение VB6, исходный код которого не должен изменяться.Теперь каждый раз, когда вызывается метод в приложении VB6, вы также хотите вызывать метод в другом компоненте (C #).

Выше приведено предположение, поскольку ваш вопрос не ясен на 100%.

Если это так, и вы не можете изменить приложение VB6, то вы могли бы иметь возможность что-то сделать, используя зацепления COM-каналов (при условии, что приложение VB6 состоит из объектов COM),

Но для этого нужно использовать C ++ и низкоуровневый COM, что, вероятно, вам не нужно.

0 голосов
/ 04 октября 2011

I думаю вы спрашиваете о вызове метода из вашего приложения C # из вашего приложения VB6 .Таким образом, мы говорим о некоторой форме межпроцессного взаимодействия (отсюда и комментарий о DCOM).

Я использовал .NET Remoting для замены DCOM в некоторых приложениях, создав COM-вызываемую библиотеку .NET, которая будет действовать как клиент, а объекты удаленного взаимодействия размещаются в приложении .NET.Ваше приложение VB6 использует объекты, а методы выполняются на сервере.

НО вам придется хотя бы немного изменить свое приложение VB6, чтобы вводить новые вызовы в ваш .NET.Можете ли вы быть более четкими в отношении требований, чтобы не менять приложение VB6?

...