ATL COM DLL寄存器错误0x80070716

时间:2014-10-28 16:38:57

标签: visual-studio-2012 com atl regsvr32

当在Win7 x64下使用ATL Dll x64完成regsvr32时,我收到错误0x80070716。

我在提出问题之前进行了搜索,并在其他网站(例如此http://www.tek-tips.com/viewthread.cfm?qid=1085835)和其他网站(例如http://forums.codeguru.com/printthread.php?t=366207)中的某些主题进行了验证。 但那些线程并没有解决我的问题。

如果有人能帮助我,请告诉我。

2 个答案:

答案 0 :(得分:5)

此类错误的另一个可能原因是缺少资源文件中.rgs文件的条目,即< my_library> .rc

每个.rgs文件必须在< my_library> .rc的REGISTRY部分中引用,如下所示:

IDR_MYRESOURCE REGISTRY "myresource.rgs"

要在文本模式下打开.rc文件,请使用"查看代码"解决方案资源管理器中的上下文菜单中的命令。

答案 1 :(得分:4)

我将分享我的解决方案,也许它将来会帮助一些人:

1)选择" ResourceView"工作区菜单栏中的选项卡。

2)右键单击未注册的组件的资源文件夹。

3)选择"资源符号......"菜单选项。

4)删除所有未使用的符号并关闭。

当我构建项目时,我收到错误错误C2065:IDR_<MYWrongIDRegistryClass>:未声明的标识符;在DECLARE_REGISTRY_RESOURCEID所以:

5)将IDR_<MYWrongClass>替换为IDR_<MYCorrectIDRegistryClass>

这些步骤使我的ATL COM DLL在构建完成后成功注册。

希望这可以帮助那些面临同样问题的人。