COM类可见性:C#到VB6
我一方面有一个C#.Net 4.0应用程序,另一方面有一个VB6应用程序。我通过使Project COM Visible和actived寄存器COM Interop创建了一个COM接口。
我通过实现导入新tlb文件的C#应用程序来测试COM接口。一切似乎都很好。
下一步我尝试将dll与vb6一起使用。可以加载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接口所做的唯一更改是向方法添加additonal参数。
为什么我不能再看到班级了?为什么只有我改变的课程,但没有“冒险”的方式?
需要帮助谢谢!
P.S:
我一直在努力:
- >所有项目都是Build x86
- > x86机器上的项目构建
- > Dependency Walker(GPSVC.DLL和IESHIMS.DLL丢失,但他们之前也做过,我认为他们没有效果导致tlb构建并且可以加载)
- > tryied tlbexp.exe但得到依赖项错误导致assambly运行时比当前运行时更新。 WTF?)
没有找到相关结果
已邀请:
1 个回复
痰嫉