2010-04-02 78 views
1

工作,我有我设法作出VB6可见组件和它的作品,但与VB5完成同样的事情的问题。使.NET程序集COM可见和VB5

对于VB6,我已经建立了装配,使其COM可见,把它注册为COM对象等,并装配显示VB6的参考名单,并让我成功地使用它。对象浏览器还显示组件中的方法。我复制了大会及其TLB以用于VB5开发虚拟工作站,跑Regasm,显然是成功的:

C:\>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 
\regasm arserviceinterface.dll /tlb:arserviceinterface.tlb 
Microsoft (R) .NET Framework Assembly Registration Utility 2.0.50727.3053 
Copyright (C) Microsoft Corporation 1998-2004. All rights reserved. 

Assembly exported to 'C:\Projects\AR\3rd Party\ARService\arserviceinterface.tlb' 
, and the type library was registered successfully 

注意,虚拟W/S是在Win2k,没有.NET Fx的3.5就可以了,只有2.0。

的组件示出了在可在VB5来选择参考文献,但该组件的方法不在对象浏览器显示出来,而且它通常是不可用的。要么我有一个步骤没有做,或者VB5不知道如何使用这样的COM对象。请注意,VB5设置位于虚拟工作站上,与安装VB6的工作站不同。

任何想法?这发生在我身上的一件事是,我可能需要生成和有问题的工作站上使用一个强大的名字,但...

回答

4
  1. 确保您的组件没有建立对使用功能从.net 3.5
  2. 复制OLE/COM对象查看器工具(您可以从安装了Windows SDK的计算机上获取它)。运行它,转到查看所有对象,向下滚动列表到您的对象,并右键单击它以创建一个实例。
    2.1如果OLE/COM对象查看器不能创建一个实例,问题是在对象是如何在机器上注册,或如何安装.NET。
    2.2如果OLE/COM Object Viewer可以创建一个实例,那么问题在于VB5如何使用。
  3. 我不记得,如果VB5实际上支持早期绑定(IUnknown基于对象),或者仅支持后期绑定(IDispatch)。我怀疑VB5只支持调度接口,而VB5.5引入了对IUnknown的支持。所以这可能是你的问题。
相关问题