2014-10-28 84 views
2

我得到一个错误0x80070716当regsvr32与ATL DLL x64在Win7 x64下完成。ATL COM DLL寄存器错误0x80070716

我在提出问题之前做了一个搜索,并且在其他网站上看到一些线索,比如这个http://www.tek-tips.com/viewthread.cfm?qid=1085835和另外一个这里是http://forums.codeguru.com/printthread.php?t=366207。 但这些线程还没有解决我的问题。

如果有人能帮助我,请让我知道。

+1

对于那些低估了我的问题的机构,至少对其他成员给出一个解释,如果不是这样的话,这对本网站的合作并不鼓励 – FreeDev 2014-10-29 09:34:37

回答

4

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

1)选择在Workspace菜单栏中的“ResourceView中”选项卡。

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

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

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

当我建立项目时,我得到错误错误C2065:IDR_<MYWrongIDRegistryClass>:未声明的标识符; DECLARE_REGISTRY_RESOURCEID so:

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

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

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

5

另一个可能的原因这样的错误缺少.RGS文件中的条目在您的资源文件,即<my_library> .RC

每个.RGS文件必须在<my_library> .RC这样的注册表部分引用:

IDR_MYRESOURCE REGISTRY "myresource.rgs" 

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