1

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

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

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

4

2 回答 2

2

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

于 2009-10-20T07:49:55.407 回答
0

如果您真的想注册服务器以供本地用户使用而不是 HKCR,HKCR 不会映射到当前用户注册表配置单元HKEY_CURRENT_USER\Software\Classes

于 2009-10-20T08:03:17.423 回答