如何调用com +组件?

时间:2009-06-02 16:09:37

标签: vb.net vb6 com+

我正在做一些考古学,处理COM +

我设法将一个简单的COM dll作为COM +组件,到目前为止一直很好。

所以我有这个'foobar'com +组件,它的界面,以及我想要调用的方法。

我的问题很简单:我该怎么调用这个组件?

接受任何.NET或VB6答案(我必须检查组件是否正常,不关心客户端)

由于

编辑(06/03/09):好吧,我很困惑。为了正常工作,我的COM +组件需要它才能被注册。为什么不?但是,如何确定我正在进行COM +调用,而不是COM调用?

4 个答案:

答案 0 :(得分:2)

最简单的VB.NET代码片段:

Dim myCom As Object
myCom = CreateObject("MyCom.ProgId")
myCom.Method(parms)

您需要将“MyCom.ProgId”替换为组件的实际ProgId - 您可以从组件服务管理工具中组件属性的“常规”选项卡中获取此信息(听起来您已经掌握了那个)

myCom.Method(parms)

只是一个占位符,用于您想要调用的任何方法,使用方法所需的参数。

这是一些VB.NET语法示例的链接:

http://msdn.microsoft.com/library/de...eateObject.asp

http://www.samspublishing.com/articl...le.asp?p=25857

http://msdn.microsoft.com/library/en...asp?frame=true

答案 1 :(得分:1)

Adam在VB6中的代码类似:

Dim myCom As Object
Set myCom = CreateObject("MyCom.ProgId")
myCom.Method(parms

这个例子是后期绑定的,并带有一些性能损失。 您可以以早期约束的方式调用您的方法,这可以避免惩罚。在VB6或VB.NET中,只需将COM + dll添加到引用中,就可以这种方式调用对象:

VB6

dim myCom as MyCom.ProgId
set myCom = new MyCom.ProgId
myCom.Method

VB.NET

dim myCom as new MyCom.ProgId
myCom.Method(...)

答案 2 :(得分:1)

如果你想要的是在调用时检查组件是否响应,那么使用快速VBScript而不是在VB6 / VB.NET中构建一些东西。

 Dim o : Set o = CreateObject("Lib.Class")
 o.YourMethod "someParam"

在组件服务中观察您的COM +应用程序,看看请求的类是否会旋转。

答案 3 :(得分:1)

如果要将COM +用于RMI,请使用此

Dim o As Object
Set o = CreateObject("Lib.Class", "MYSERVER")

其中MYSERVER是创建COM +应用程序并注册DLL的机器名称。随后

o.YourMethod "someParam"

将被远程调用。如果您只使用自动化兼容接口,COM +将成功为RMI创建代理。否则,您需要在客户端计算机上提供typelib。这可以是单独的TLB或DLL本身。