我有一个非常奇怪的问题。
我正在尝试运行我使用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
确实存在时,我会收到错误。
而且,是的,我确实有权阅读该文件,我还能如何复制它......
答案 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放在它尝试获取它的路径上。