我有一个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