找不到c:\ windows \ system32 \ mfc100d.dll

时间:2015-03-19 03:32:44

标签: c++ windows visual-studio-2010 dll

我有一个非常奇怪的问题。

我正在尝试运行我使用VS2010构建的控制台应用程序,并且找不到错误mfc100d.dll。但是,此dll存在于c:\windows\system32中,我的路径为c:\windows\system32

如果我将文件从c:\windows\system32复制到我当前的目录,则可以正常工作。

如果我在路径中添加C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC100.DebugMFC\,它也可以。

在我昨天卸载程序并安装新版本之前,一切正常。但我无法理解的是,当mfc100d.dll路径中的C:\windows\system32确实存在时,我会收到错误。

而且,是的,我确实有权阅读该文件,我还能如何复制它......

4 个答案:

答案 0 :(得分:1)

在64位Windows上运行的32位应用程序中,访问System32目录会被重定向到SysWOW64目录。从32位Python获取此输出,例如:

>>> import os
>>> print(os.path._getfinalpathname(r'C:\Windows\System32\mfc100d.dll'))
\\?\C:\Windows\SysWOW64\mfc100d.dll

请记住,由于WOW64和UAC,文件系统和注册表路径都可以重定向,因此您并不总是完全您要求的内容!如果由于某种原因您最终通过SysWOW64\cmd.exe运行32位命令提示符,这可能会让您措手不及,特别是如果您最终在同一控制台窗口中运行32位和64位应用程序的混合。

答案 1 :(得分:0)

如果您卸载了某些内容,则可能是您的环境变量已重置。你检查过了吗?

答案 2 :(得分:0)

尝试检查PATH,查看搜索路径中是否存在多个mfc100d.dll,其中一个被破坏。 (可能是由于卸载)

答案 3 :(得分:0)

检查控制台应用程序尝试使用Dependency Walker获取该mfc100d.dll文件的位置。然后将mfc100d.dll放在它尝试获取它的路径上。