我有一个程序集,我已经设法使VB6可见并且它可以工作,但是在使用VB5时遇到了同样的问题。
对于VB6,我构建了程序集,使其可见COM,将其注册为COM对象等,并且程序集显示在VB6的References列表中,并允许我成功使用它。对象浏览器还显示了assy中的方法。我将程序集及其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的同一工作站。
有什么想法吗?我遇到的一件事是,我可能需要在有问题的工作站上生成并使用强名称,但是......
答案 0 :(得分:4)
IUnknown
- 基于对象)或者是否仅支持后期绑定(IDispatch
)。我怀疑VB5只支持调度接口,而VB5.5引入了对IUnknown的支持。这可能是你的问题。