2014-11-24 171 views
0

我有ac#com可见dll,我想在vb6项目中调用此dll,这也会生成dll.I不使用regasm.exe来执行此操作调用,而不是我为c#dll使用清单生成,然后创建它的tlb并从vb6调用它。 我在c#dll中创建了两个接口,一个是Itest,另一个是Itest2,两个接口都是可见的,并将Guid添加到两个接口中,有两个名为testimp和classimp的类,分别实现了这两个接口。这两个类都是可见的,Classinterface键入为none并具有其各自的GUID。如何在vb6库项目中引用com可见C#dll

问题是,我只能从我的vb6项目而不是classimp类实例化testimp类。

+0

VB6非常**敌视任何进行清单工作的企图。主要问题是它不直接支持将清单作为资源嵌入,并且在使用VB6 IDE进行调试时清单无法工作。你唯一的注意就是在你已经调试和测试你的代码并准备部署之后,才尝试这样做。使用mt.exe将清单作为资源ID#2嵌入到VB6 dll中。并且确实考虑到你*仍然*需要注册VB6 dll,以便可以通过客户端程序找到它,所以你实际上并不领先。 – 2014-11-24 11:43:55

回答

1

COM注册通常是从TLB GUID引用 - 这是在注册表中注册

需要注意的是在Windows Vista和向上(IIRC)它也可能部署在一个.manifest的文件的应用程序的本地COM注册:

+0

你能否详细说明你答案的最后一行? – raunak 2014-11-24 10:17:37

+0

我认为你需要先详细阐述你的目标/麻烦。最后一行是超链接,它是不言自明的。在这样的情况下,我们可以帮助那些坚持解决方案中具体步骤的人。 – sehe 2014-11-24 10:19:05

+0

我编辑了整个问题。希望这可以清楚地解释我的问题。 – raunak 2014-11-24 10:46:59

0

如果您的问题是每位用户安装,请使用Regasm创建regfile,然后编辑regfile以将对HKCR的引用更改为HKCU \ Software \ Classes。