![为什么我无法注册任何 DLL](https://linux22.com/image/1246300/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E6%97%A0%E6%B3%95%E6%B3%A8%E5%86%8C%E4%BB%BB%E4%BD%95%20DLL.png)
我跑:
regsvr32 somefile.dll
经过较长的延迟 (约 1 分钟) 后会弹出一个警告对话框,内容为:
LoadLibrary("somefile.dll") failed.
GetLastError returns 0x0000007e.
DLL 位于我当前的目录中。我尝试了多个 DLL,但它们都给出了相同的错误。
答案1
问题最终是由于我的 C:\windows\system32\regsvr32.exe 版本过旧。我从一位网络管理员那里获得了可执行文件的新版本,这解决了我的问题。
答案2
来自 Microsofthttp://support.microsoft.com/kb/238265,关于注册特定DLL时出现0x0000007e错误代码
出现此行为的原因是,Olemsg32.dll 和Cdo.dll 文件是从错误的安装点调用的。
看看您是否可以将他们建议的修复应用到您的文件,并且您必须获得管理权限。
答案3
我发现我试图注册的 DLL 要求在 system32 目录中有一个额外的 DLL (mvscrtd.dll)。我使用 Sysinternals 的“进程监视器”实用程序来捕获 regsvr32 活动,并发现了对丢失文件的引用。