2014-10-28 64 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文件,請在解決方案資源管理它的上下文菜單中的「查看代碼」命令。