VS2010 "缺少dlmgr.dll 无法继续执行代码。重新安装程序可能会解决此问题"解决方案

问题如题目描述,使用安装包修复/重新安装未果,于是想到为他提供他需要的dll文件来解决问题。
  下载一份新的dlmgr.dll文件,复制dll文件到相应的目录里,这里有一点需要注意,64位系统需要注意,system32复制的是64位的dll文件。
  我的电脑是64位,但是只找到了一份dlmgr.dll文件。因此,我在C:\Windows\System32和C:\Windows\SysWOW64下都放了一份。终于解决了这个问题。

即:

64位系统:
    复制x64的dll文件到C:\Windows\System32
    复制x86的dll文件到C:\Windows\SysWOW64
32位系统:
    复制x86的dll到C:\Windows\System32


解释如下
  如果查看32位操作系统内的/Windows文件夹,会发现两个子目录:一个是System,还有一个是System32。System目录是Windows 3.x遗留下来,用来保持Windows的对一些旧的应用程序的向下兼容性。一般来说,16位的DLL文件(以及其它的支持文件)被存放在\Windows\System文件夹里,32位的DLL文件和不同支持文件被放在\Windows\System32的文件夹里。
  32位版本的Windows保持16位和32位DLL文件的方式是非常简单的,但是64位版本的Windows保持64位和32位DLL文件的方式就不这么简单了。
  对于一个64位系统,微软创建了一个新的名为SysWOW64的文件夹来存放32位的DLL文件。在64位版本的Windows内,微软使用\Windows\System32文件夹做为64位DLL的仓库,而不是32位DLL文件的。
  32位代码不能默认在64位版本的Windows内运行。为了运行32位的应用程序,Windows使用WOW64 emulator,来让这些应用程序还认为它们在32位版本的Windows内运行。 当你安装一个32位的应用程序,安装向导通过WOW64 emulato运行。这意味着当你安装一个应用程序,安装向导并不知道这个程序被安装到64位版本的Windows内,并且和它运行在32位操作系统一样把DLL文件写到\Windows\System32文件夹里面。当然,WOW64知道安装向导通过emulator来运行的32位应用程序。同时也知道64和32位代码不能混合在一起。所以,WOW64 emulator 给\Windows\SysWOW64创建一个别名。这意味着32位应用程序要写入到\Windows\System32文件夹或者从\Windows\System32文件夹读取,WOW64 emulator都能使其改道到\Windows\SysWOW64文件夹。
  当然,可以使用函数禁止重定向:Wow64DisableWow64FsRedirection
  或恢复重定向:Wow64RevertWow64FsRedirection
  
解释部分转自此处

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值