当在Win7 x64下使用ATL Dll x64完成regsvr32时,我收到错误0x80070716。
我在提出问题之前进行了搜索,并在其他网站(例如此http://www.tek-tips.com/viewthread.cfm?qid=1085835)和其他网站(例如http://forums.codeguru.com/printthread.php?t=366207)中的某些主题进行了验证。 但那些线程并没有解决我的问题。
如果有人能帮助我,请告诉我。
答案 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在构建完成后成功注册。
希望这可以帮助那些面临同样问题的人。