【发布时间】:2021-01-02 16:21:00
【问题描述】:
我正在尝试恢复一些旧软件:它是在 Windows XP 上开发的,我正在尝试让它在 Windows 10 上运行。
但是,此软件依赖于 api-ms-win-core-wow64-l1-1-1.dll,而后者不合作:Dependencies 声明 api-ms-win-core-wow64-l1-1-1.dll 缺少导入,而 Visual Studio 的 dumpbin 声明它没有依赖关系。
我知道Microsoft has migrated its functionality 和nobody should link to the implementations directly,但是有没有办法在Windows 10 上为这个旧软件获得api-ms-win-core-wow64-l1-1-1.dll 功能?或者,是否有一种可访问的方法来重写旧的.dlls 以链接到 Microsoft 的 Win32 API?
(对于那些需要该文件的人:我通过在安装了 wine 的 linux 机器上运行 $ locate api-ms-win-core-wow64-l1-1-1.dll 得到 api-ms-win-core-wow64-l1-1-1.dll。)
【问题讨论】:
-
在 Windows 7 中添加了 API 集。此外,在 Windows 8 中添加了“api-ms-win-core-wow64-l1-1-0.dll”,并在 Windows 8 中添加了“api-ms-win” -core-wow64-l1-1-1.dll”是在 Windows 10 中添加的。API 集“DLL”通常不是文件,除非提供下级支持,而是它们是 API 集中的条目加载器使用的模式。例如,“api-ms-win-core-wow64-l1-1-1.dll”在 Windows 10 中被映射到“kernelbase.dll”。较旧的实用程序会查找他们声称丢失的文件,但这不是不对。
-
每当我尝试运行旧程序时,我都会得到输出
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Path\To\Dlls\MainDll.dll: Can't find dependent libraries。如果这不是由于缺少依赖项引起的,那可能是什么? -
你找到解决这个问题的方法了吗?我正在 Windows 10 上编译 ffmpeg。但我仍然遇到这个缺少 dll 的问题。
-
@ErykSun 那么这是否意味着您可以将
kernelbase.dll复制并重命名为api-ms-win-core-wow64-l1-1-1.dll以满足依赖关系?
标签: windows dll dependencies