背景:我們有一個用C#編寫的COM對象。我們正在與另一家使用VB6編寫代碼的公司合作。我們需要發送VB6代碼來創建和調用COM對象中的對象/方法。如何在VB6中的COM .tlb文件中引用對象和方法?
我使用Microsoft提供的RegAsm.exe從C#COM DLL文件創建了一個.tlb文件。然後我在VB6中添加了這個.tlb文件作爲參考(Project-> References-> Browse ...)。它也在可用引用下進行檢查。它沒有註冊爲COM +。
我用這篇文章(C#/VB6 COM Example)作爲所有這些的參考。
問題:的問題是,我引用我的VB6項目這個COM對象,但沒有對象/方法/命名空間出現。我一定有一些簡單的東西,但它是什麼?我是否需要將此註冊爲COM +,還是其他問題?
編輯:關於項目
OK更多信息,所以我現在可以訪問源代碼,但顯然我錯了。它使用C++而不是C#。我們的C++ COM對象測試應用程序是用C#編寫的,但COM對象本身是C++。
現在,我的新問題是如何與此C++ DLL接口。我的大學提到它「不是一個真正的COM對象」,那麼除了將它作爲參考添加它之外,還有其他方法可以與之交互嗎?如果沒有,那我該如何把它變成一個COM對象?
我需要訪問和使用函數以及來自此DLL的對象。
你在C#項目中的類上放置了ComVisible屬性嗎?在班上的任何方法? – 2010-09-28 17:38:26
另一種檢查方法:使用對象資源管理器工具打開.tlb,看看裏面有什麼 – Rup 2010-09-28 18:19:35
我是第二個Rup建議。查看在對象資源管理器工具下顯示的任何類。如果不是的話,請按照凱特的評論,並確保每個COM都可見。 – 2010-09-29 18:15:09