我有一个COM可见.NET类,它公开事件并从VB6中使用。在过去的几天里,我一直试图让它与regfreeCOM一起工作,但没有成功。当从原始线程触发事件时,VB6事件以regfree模式运行。VB6事件在注册类型库时从另一个线程触发时运行。(regasm/tlb/codebase后跟regasm/codebase/unregister,后者不会注销tlb)当在regfree模式下从另一个线程触发时,它会抛出异常,因此永远不会执行VB6事件代码。System.Reflection.TargetException:Objectdoesnotmatchtargettype.atSystem.
我有一些从VB6代码中使用的.NET代码。我一直在XP机器上开发它,方法是创建一个列出相关.NET程序集的VB6.exe.manifest文件。例如,假设我的2个.NET程序集是Some.Assembly.A.dll和Some.Assembly.B.dll,这是VB6.EXE.manifest的样子(我在下面使用version=1.1.0.0,因为是我在AssemblyInfo.cs中的.NETAssemblyVersion上设置的版本):然后,除了同一目录中的DLL,我还有程序集和它们自己的list文件。这是一个示例“Some.Assembly.A.dll.manifest”:我还在
在我的一个项目中,我有一个使用C++DLL的C#应用程序。目前在客户端PC上,我们正在注册表中的COM组件中注册C++DLLS,以便我们在C#中使用它们。我在NET上了解到,Microsoft提供了一个RegFree解决方案,链接为http://msdn.microsoft.com/en-us/library/ms973913.aspx但是看完之后我并没有得到太多线索,因为我的应用程序架构如下所示不同我有2个C++dll让我们说CPForms.dll和Rules.dll。Rule.dll包含在CPForms.dll中我有1个C#dll假设使用CPForms.DLL的ConsumeFor
有谁知道免注册COM和拖放功能之间可能存在哪种关系?具体来说,我们有一个庞大的C++CAD/CAM应用程序,其中包含大量EXE和数百个DLL。其中许多充当COM服务器(进程内和进程外)和/或客户端,并且还实现ActiveX控件。大多数ActiveX控件和其中一个EXE的基于CMDIFrameWnd的主要窗口都实现了拖放功能。ActiveX控件实现了拖放源和拖放目标,主窗口只是拖放目标,特别是对于来自Windows资源管理器的文件。拖放实现非常标准,基于从COleDataSource和COleDropTarget派生的两个数据成员,分别用于放置源和放置目标。COleDropTarget派