DLL文件应该放在哪里?

本文详细介绍了64位Windows系统中如何处理32位DLL文件,包括使用SysWOW64文件夹存储32位DLL、WOW64emulator的作用原理及其如何避免32位与64位DLL混淆等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


http://tieba.baidu.com/p/3337331207

### 关于 `vcruntime140_1.dll` 的正确放置路径 `vcruntime140_1.dll` 是由 Microsoft 提供的一个动态链接库 (Dynamic Link Library, DLL),属于 Visual C++ Redistributable 组件的一部分。它的主要作用是为基于 Microsoft Visual Studio 开发的应用程序提供运行时支持[^1]。 在 Windows 系统中,`vcruntime140_1.dll` 通常会被安装到以下几个目录之一: 1. **系统目录** 对于 64 位操作系统,默认情况下会将该文件放置在以下两个系统目录中: - `%SystemRoot%\System32\`(适用于 64 位应用程序) - `%SystemRoot%\SysWOW64\`(适用于 32 位应用程序) 这里的 `%SystemRoot%` 一般是 `C:\Windows`,因此完整的路径可能是: - `C:\Windows\System32\vcruntime140_1.dll` - `C:\Windows\SysWOW64\vcruntime140_1.dll` 2. **应用程序本地目录** 如果某个特定应用程序自带了其所需的 `vcruntime140_1.dll`,则该文件可能会被放置在与该应用程序相同的目录下。这种做法是为了避免不同版本的 DLL 文件之间的冲突[^2]。 3. **其他可能的位置** 在极少数情况下,某些开发者会选择将其放在自定义路径中,但这并不常见。如果发生这种情况,通常会在应用程序的配置文件或文档中说明具体的路径。 #### 如何验证 `vcruntime140_1.dll` 是否存在于正确位置? 可以使用以下 Python 脚本来检查指定路径下是否存在该文件: ```python import os def check_dll_paths(): paths = [ r"C:\Windows\System32\vcruntime140_1.dll", r"C:\Windows\SysWOW64\vcruntime140_1.dll" ] results = {} for path in paths: results[path] = os.path.exists(path) return results print(check_dll_paths()) ``` 此脚本将返回一个字典,显示每个路径下是否存在对应的 `.dll` 文件。 --- #### 当前文件缺失时的解决方案 如果发现 `vcruntime140_1.dll` 文件确实缺失,可以通过以下几种方式进行修复: 1. **重新安装 Visual C++ Redistributable** 访问微软官方网站下载最新版的 [Visual C++ Redistributable](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170)[^3] 并按照指示完成安装过程。 2. **手动复制文件** 若已知某处有合法副本,则可以直接将其复制至上述提及的相关系统目录之中;不过需要注意确保来源可靠以免引入恶意代码风险。 3. **利用系统文件恢复工具** Windows 自带了一个名为 SFC(System File Checker)的命令行实用程序可以帮助扫描并替换损坏或丢失的关键系统文件包括但不限于我们的目标对象——即 vcruntime*.dll 类型的东西们啦! 执行如下指令即可启动自动检测流程: ```cmd sfc /scannow ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值