2010-04-02 76 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的支持。所以這可能是你的問題。
相關問題