调用C#COM对象

调用C#COM对象,c#,com,C#,Com,好的,我创建了一个c#dll,使它的所有接口和方法都可见(true)。使用gacutil将其添加到GAC,然后使用regasm注册并创建一个类型库tlb文件 现在,我有另一个c#项目,我想调用该com对象,我如何才能做到这一点?导入com对象然后使用其调用时,代码大致是什么样子的?首先,为什么要通过com在另一个C#项目中调用该C#程序集(您已使comvisible)?这是没有必要的 本体论: 如果您已经创建了一个tlb文件,那么您不应该做任何特殊的事情。您可以只引用已创建的c#程序集的“运行时

好的,我创建了一个c#dll,使它的所有接口和方法都可见(true)。使用gacutil将其添加到GAC,然后使用regasm注册并创建一个类型库tlb文件


现在,我有另一个c#项目,我想调用该com对象,我如何才能做到这一点?导入com对象然后使用其调用时,代码大致是什么样子的?

首先,为什么要通过com在另一个C#项目中调用该C#程序集(您已使comvisible)?这是没有必要的

本体论:
如果您已经创建了一个tlb文件,那么您不应该做任何特殊的事情。您可以只引用已创建的c#程序集的“运行时可调用包装器”。

首先,为什么要通过COM在其他c#项目中调用该c#程序集(您已使其可见)?这是没有必要的

本体论:
如果您已经创建了一个tlb文件,那么您不应该做任何特殊的事情。您只需引用已创建的c#程序集的“运行时可调用包装器”即可。

步骤1:创建运行时可调用包装器。 有两种方法

方法1:使用TlbImp生成RCW

tlbimp <YourCOMSvr>.tlb /out:<YourCOMSvr>.dll

步骤1:创建运行时可调用的包装。 有两种方法

方法1:使用TlbImp生成RCW

tlbimp <YourCOMSvr>.tlb /out:<YourCOMSvr>.dll
当您的C#组件成为符合COM标准的组件时,它的行为也开始像一个符合ActiveX标准的组件一样。

因此,测试COM调用的一个简单方法是使用JavaScript代码编写一个简单的HTML页面,如下所示:

Set MyCOMObj = Server.CreateObject("NAME_OF_COM_EXPOSED_CLASS"); 
MyCOMObj.My_COM_Method();
如果您能够在没有任何错误的情况下调用这样的方法,则意味着您的COM调用工作正常

感谢并问候Anugrah Atreya
当您的C#组件成为一个符合COM标准的组件时,它也开始像一个符合ActiveX标准的组件一样工作。

因此,测试COM调用的一个简单方法是使用JavaScript代码编写一个简单的HTML页面,如下所示:

Set MyCOMObj = Server.CreateObject("NAME_OF_COM_EXPOSED_CLASS"); 
MyCOMObj.My_COM_Method();
如果您能够在没有任何错误的情况下调用这样的方法,则意味着您的COM调用工作正常


感谢并感谢Anugrah Atreya

好的,我知道用户可能只是添加另一个c#dll作为他们项目的参考,而不是通过COM,但我基本上想做的是测试COM调用!不学C++!有办法吗?我如何引用运行时可调用包装器?好的,我知道用户可能只是添加另一个c#dll作为对其项目的引用,而不是通过COM,但我基本上想做的是测试COM调用!不学C++!有办法吗?如何引用运行时可调用包装器?