Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用COM对我合适吗?_C#_.net_Com_Vb6_Dcom - Fatal编程技术网

C# 使用COM对我合适吗?

C# 使用COM对我合适吗?,c#,.net,com,vb6,dcom,C#,.net,Com,Vb6,Dcom,我的作品有一个用VB6编写的应用程序。我的任务是用C#NET编写另一个不同的应用程序。我不允许更改VB6代码,但每次在VB6应用程序中调用特定函数时,我都需要调用函数(从.NET应用程序) 我的老板建议使用COM或DCOM来完成此任务。我对这两个主题都不熟悉,并且很难找到一个我可以轻松理解并且与我的任务相关的教程 我可以使用COM来执行此操作,还是必须修改现有的VB6代码?您需要将VB6中的函数作为COM(ActiveX DLL)公开。这是直截了当的。 调用COM对象也很容易。 您需要将VB6

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

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


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

您需要将VB6中的函数作为COM(ActiveX DLL)公开。这是直截了当的。

调用COM对象也很容易。
您需要将VB6中的函数作为COM(ActiveX DLL)公开。这是直截了当的。

调用COM对象也很容易。

我觉得您有一个VB6应用程序,其源代码不应更改。现在,每次调用VB6应用程序中的方法时,您还需要调用另一个组件(C#)中的方法

以上是一个假设,因为你的问题不是100%清楚

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


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

< P>听起来,你好像有一个VB6应用程序,它的源代码不应该被改变。现在,每次调用VB6应用程序中的方法时,您还需要调用另一个组件(C#)中的方法

以上是一个假设,因为你的问题不是100%清楚

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


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

i>强>思考你正在从你的VB6<强>应用程序< /强>中调用你的C>强>应用程序< /St>。因此,我们讨论的是某种形式的进程间通信(因此对DCOM进行了评论)

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


但是您必须修改VB6应用程序,至少修改一点,才能将新调用注入到.NET中。您能否更清楚地了解不更改VB6应用程序的要求

I思考您询问的是如何从VB6应用程序中调用C#应用程序中的方法。因此,我们讨论的是某种形式的进程间通信(因此对DCOM进行了评论)

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


但是您必须修改VB6应用程序,至少修改一点,才能将新调用注入到.NET中。您能否更清楚地了解不更改VB6应用程序的要求

不清楚。这条路是:VB6调用C#调用某个东西或C#调用VB6或其他东西。。。还有“我需要调用一个函数”。。。它是哪种语言?除非VB6代码已经是一个com对象,也就是componet,否则我认为您必须以某种方式进行修改。要么将其作为com项目公开,要么将其调用.Net代码作为com对象公开。为简单起见,如果两个应用程序都在同一台机器上运行,则可以使用DDE,这种方法有点过时,但非常简单。不清楚。这条路是:VB6调用C#调用某个东西或C#调用VB6或其他东西。。。还有“我需要调用一个函数”。。。它是哪种语言?除非VB6代码已经是一个com对象,也就是componet,否则我认为您必须以某种方式进行修改。要么将其作为com项目公开,要么将其调用.Net代码作为com对象公开。为简单起见,如果两个应用程序都在同一台机器上运行,则可以使用DDE,这有点过时,但非常简单。