解惑

解己之惑,解人之惑

标签:DLL

Regsvr32: 0x80070716

注册Dll的时候遇到这个错误,当然,我是在开发一个新的自己的DLL,或者是我修改已有的DLL增加我自己的东西,已经遇到好几次这个错误了。这个错误的对应的错误信息是:

the resource name specified cannot be found in the image file

其实我已经遇到过几次了,上次解决过一次,但是忘记了,这次吸取教训,把它记下来。

我的错误是因为我增加了一些类,idl修改好了,rgs文件也都写好了,但是我忘记了在rc文件里面把那些rgs文件引用下。

Interop的dll

底层是COM,但是会自动生成Interop的dll给.net平台用,问题是用regsvr32注册COM的时候好像不会更新那个Interop出来的DLL,遇到一个问题就是这个导致的,编译没有问题,运行的时候死活找不到新加的那个类,后来没有办法,搜索整个计算机,把COM的DLL和Interop的DLL全部搜索出来并且删除,再看Visual Studio,才发现它实际上使用的是c:\windows\assembly\GAC_MSIL下的那一份,你在搜索的时候把搜索系统文件和隐藏文件都勾上也不会去搜索这个目录下的东西。应该是有命令可以更新的,不过我现在还是暴力替换:

c:

cd \windows\assebmly

attrib -r -h -s Desktop.ini

del Desktop.ini

这样这个目录就可以进去看并且直接替换DLL了。

© 2024 解惑

本主题由Anders Noren提供向上 ↑