【问题标题】:api-ms-win-core-wow64-l1-1-1.dll on Windows 10Windows 10 上的 api-ms-win-core-wow64-l1-1-1.dll
【发布时间】: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 functionalitynobody 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


【解决方案1】:

我不确定这是否直接解决了您的问题。我支持将 JNI 与一些本机 Windows 库一起使用的 Java 应用程序。我使用Dependencies 检查丢失的内容,结果是 api-ms-win-core-wow64-l1-1-1.dll(通过 WS2_32.dll)。

我的解决方案是安装最新的VC redistributable from MS

【讨论】:

  • 那没有提供我需要的依赖。
【解决方案2】:

Wine 获取库可能不是一个解决方案,以防您试图在 linux 环境之外使用它们。 (它们是包装器,显然不使用本机 Windows 程序集)

您可以通过从ReactOS live CD 中提取它们来获得一些成功。但是,您应该知道其中许多是 umbrella 库,如下所述:

伞库是导出 Win32 API 子集的单个静态链接库。例如,名为 OneCore.lib 的总括库为所有 Windows 10 设备通用的 Win32 API 子集提供导出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    相关资源
    最近更新 更多