如何创建COM对象以作为受限用户注册?

时间:2011-01-31 19:00:42

标签: com atl

我在vs2010中创建了一个项目,它打算按用户安装,但我需要包含一个COM对象(在dll中,我正在使用ATL)。问题是我只能使用管理员权限进行DLL注册,但我的安装程序不需要管理员权限,并且com注册失败。

这是我发现的: http://blogs.msdn.com/b/jaredpar/archive/2005/05/29/423000.aspx

我做了那些修改,将.rgs文件从HKCR更改为HKCU,并修改了DllRegisterServer代码以通过HKCU \ Software \ Classes

覆盖HKCR

但是我得到了同样的错误:0x8002801c使用regsvr32(作为受限用户),安装程序也给了我一个错误。是否还需要其他东西来创建每个用户的COM对象?

Thans。

2 个答案:

答案 0 :(得分:0)

创建引用DLL的清单文件。查看this tool无痛清单生成

答案 1 :(得分:0)

在Visual Studio 2017中,您可以在项目属性>中启用每用户重定向选项。链接器>一般

我不需要更改修改rgs文件。

要注册COM .exe,请使用/ RegServerPerUser标志。普通/ RegServer标志对我不起作用(link)。

要注册COM .dll,请使用regsvr32 /n /i:user "xxxx.dll"link)。