是否适合使用COM?

时间:2011-10-03 18:16:28

标签: c# .net com vb6 dcom

我的工作有一个用VB6编写的应用程序。我的任务是在C#.NET中编写另一个不同的应用程序。我不允许更改VB6代码,但每次在VB6应用程序中调用特定函数时,我都需要调用一个函数(来自我的.NET应用程序)。

我的老板建议使用COM或DCOM完成此任务。我对这两个主题都不熟悉,并且很难找到一个我能够轻松理解并且与我的任务相关的教程。

我可以使用COM执行此操作还是必须修改现有的VB6代码?

3 个答案:

答案 0 :(得分:2)

您需要将VB6中的函数公开为COM(ActiveX DLL)。这是直截了当的。 http://vb-helper.com/howto_activex_dll.html

调用COM对象也很容易。 http://www.c-sharpcorner.com/UploadFile/psingh/CallingCOMComponentFromCSharp12022005231615PM/CallingCOMComponentFromCSharp.aspx

答案 1 :(得分:1)

听起来我有一个VB6应用程序,其源代码不应该被更改。现在,每次调用VB6应用程序中的方法时,您还希望在另一个组件(C#)中调用方法。

以上是一个假设,因为您的问题不是100%明确的。

如果是这种情况并且您无法更改VB6应用程序,则可能能够使用COM Channel Hooks执行某些操作(假设VB6应用程序由COM对象组成)。

但那可能是使用C ++和低级COM,这可能是你不想做的事情。

答案 2 :(得分:0)

您要求从VB6 应用程序中调用C#应用程序中的方法。所以我们正在谈论某种形式的进程间通信(因此关于DCOM的评论)。

我已经使用.NET Remoting来替换某些应用程序中的DCOM,方法是创建一个可COM调用的.NET库作为客户端,远程处理对象托管在.NET应用程序中。您的VB6应用程序使用对象,并且方法在服务器上执行。

但是你必须修改你的VB6应用程序,至少一点点,以便为你的.NET注入新的调用。您是否可以更清楚地了解不更改VB6应用程序的要求?

相关问题