我有一個C#.Net 4.0應用程序和另一個VB6應用程序。我通過使Project COM Visible和Actived寄存器COM Interop創建了一個COM接口。COM類的可見性:C#到VB6
I通過執行C#應用程序測試COM接口,以導入新的tlb文件。一切似乎都很好。
下一步我試圖用vb6來使用dll。該DLL可以加載,但現在我看不到所有的公共課程。在C#中,我看到vb6中有4個類,我只能看到3.
我看不到的類是一個「特殊的」類,它導致了一個接口和服務事件。
類標有
[ComSourceInterfaces(typeof(COMEvents))]
和COMEvents界面中,就像
[Guid("11947063-4665-4DE1-931D-9915CCD01794")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface COMEvents
{
void MethodOne();
void MethodTwo();
}
我不得不說,所有工作得很好。比我添加了一個項目,它隻影響其他程序集,而這些程序集是由COM接口項目在運行時加載的。他們實現了一個改變了的界面。這是我對com界面做出的唯一改變是爲方法添加了附加參數。
爲什麼我不能再看到課堂?爲什麼只有我改變了班級,卻沒有「冒險」的方式?
需要幫助謝謝!
PS: 我嘗試到現在: - >所有項目都建立86 - 在x86機器>項目建設 - >的Dependency Walker(GPSVC.DLL和IESHIMS.DLL失蹤,但他們以前那樣和也我不認爲他們有anny效果導致tlb生成並可以加載) - > tryied tlbexp.exe但得到一個依賴性錯誤導致assambly運行時比目前新。 wtf?)
讓你想知道......「得到一個依賴性錯誤導致assambly運行時比當前更新。」....一個完全不相關的錯誤,但你仍然堅持下去。我向你致敬,你勇敢的人。 – 2011-11-30 12:43:59