我有ac#com可见的dll,我想在vb6项目中调用这个dll,这也会生成一个dll。我没有使用regasm.exe来执行此调用,而不是我正在使用c#的清单生成dll然后创建它的tlb并从vb6调用它。
我在c#dll中创建了两个接口,一个是Itest,另一个是Itest2,两个接口都是可见的,并将Guid添加到两个接口,有两个名为testimp和classimp的类,它们分别实现了这两个接口。这两个类都是可见的,Classinterface类型为none,并具有各自的GUID。
问题是我能够从我的vb6项目中实例化testimp类而不是classimp类。
答案 0 :(得分:1)
COM注册通常从TLB GUID引用 - 它将在注册表中注册
请注意,在Windows Vista及更高版本(IIRC)上,也可能在.manifest文件中部署应用程序本地COM注册:
答案 1 :(得分:0)
如果您的问题是按用户安装,请使用Regasm创建一个regfile,然后编辑regfile以将对HKCR的引用更改为HKCU \ Software \ Classes。