DLL自注册:如何只为当前用户注册?

时间:2009-10-20 07:38:36

标签: visual-c++ com registry registration

我正在使用Visual C ++。我真的只想为当前用户注册DLL,即使用户是管理员。

出于这个原因,我改变了所有project.rgs对HKCR的引用。 但是,在使用regsvr32注册DLL时使用Process Monitor,我注意到它仍然尝试创建HKCR\TypeLib\{ ... }。 这是在致电CComModule::RegisterServer()时发生的。

这是CComModule固有的吗?在Visual C ++的配置方面,我有什么遗漏吗?我知道我可以使用RegOverridePredefKey,但我不想加载更多的DLL,这不是一个非常优雅的解决方案。

2 个答案:

答案 0 :(得分:2)

CComModule::RegisterServer()有一个BOOL第一个参数,指示是否应该注册类型库。将其设置为FALSE,它不会尝试。

答案 1 :(得分:0)

如果您确实要为本地用户注册服务器而不是HKCR,则HKCR未映射到当前用户注册表配置单元。