VS2010没有权限注册COM的解决办法
2013-07-04 21:00
281 查看
在win7下,用vc2010建立了一个最简单的ATL com,但是编译成功了,注册时却失败了,提示:
"warning MSB3075: 命令“regsvr32 /s "E:\Program\VC2010\testcom3\Debug\testcom3.dll"”已退出,代码为 5。请验证您是否有足够的权限来运行此命令。"
很明显:这是一个权限不足的问题。同样的代码放在win XP下,可能没有任何问题,但是在win7下却出现了这种问题。因为win7对权限的管理还是比较严的。
分析代码,注册dll的代码就是:_AtlModule.DllRegisterServer(); 这个函数做的任务是将信息写入注册表,但由于权限的问题,写不进去。
解决办法:
在写注册表前先执行ATL::AtlSetPerUserRegistration(true); // 将应用程序的写入点重定向到HKEY_CURRENT_USER
重新编译,发现注册成功了!
同理,为了实现反注册(DllUnregisterServer)时也能执行成功,需要在执行 _AtlModule.DllUnregisterServer();前先执行ATL::AtlSetPerUserRegistration(true); 即
?
"warning MSB3075: 命令“regsvr32 /s "E:\Program\VC2010\testcom3\Debug\testcom3.dll"”已退出,代码为 5。请验证您是否有足够的权限来运行此命令。"
很明显:这是一个权限不足的问题。同样的代码放在win XP下,可能没有任何问题,但是在win7下却出现了这种问题。因为win7对权限的管理还是比较严的。
分析代码,注册dll的代码就是:_AtlModule.DllRegisterServer(); 这个函数做的任务是将信息写入注册表,但由于权限的问题,写不进去。
解决办法:
在写注册表前先执行ATL::AtlSetPerUserRegistration(true); // 将应用程序的写入点重定向到HKEY_CURRENT_USER
重新编译,发现注册成功了!
同理,为了实现反注册(DllUnregisterServer)时也能执行成功,需要在执行 _AtlModule.DllUnregisterServer();前先执行ATL::AtlSetPerUserRegistration(true); 即
?
相关文章推荐
- 没有为 COM 互操作注册程序集 请使用 regasm.exe /tlb 注册该程序集——解决办法
- 没有为 COM 互操作注册程序集 请使用 regasm.exe /tlb 注册该程序集——解决办法
- Ubuntu下添添加的用户没有sudo权限的解决办法
- 当前标识没有对"Temporary ASP.NET Files"的写访问权限的解决办法
- 没有在该机执行windows脚本宿主的权限_解决办法
- 因为Android M权限问题导致的"Permission Denial: reading com.android.providers.media.MediaProvider"解决办法
- 利用C#开发web应用程序时,对注册表进行操作提示没有权限的解决办法
- “你没有权限登录JIRA”的解决办法
- VMware无法运行,重新安装提示“您可能没有合适的权限访问这个项目”的解决办法
- 【转】win7“您可能没有权限使用网络资源”的解决办法
- VS2010无法查看自定义的普通变量解决办法( CXX0017: 错误: 没有找到符号 )
- 出现您无权查看该网页(您可能没有权限用您提供的凭据查看此目录或网页)的解决办法
- 通过IIS操作修改服务器文件没有权限的解决办法
- iOS9 添加定位功能后,启动应用没有出现允许开启定位权限的通知,或者出现权限通知后,自动消失的解决办法 - 家柱
- com.alibaba.dubbo.monitor.MonitorService没有提供者的解决办法O(∩_∩)O
- 远程桌面无法登录:由于帐户限制,无法让你登(访问局域网某台电脑时提示:无法访问,你可能没有权限使用网络资源.的解决办法 !!)
- VS2010没有智能提示解决办法
- vs2010发布网站时有些文件没有发布出去的解决办法。
- windows SDK安装出现没有权限的一个解决办法
- ArcGIS操作Excel文件没有注册类解决办法