【问题标题】:api-ms-win-core-winrt-string-l1-1-0.dll is missing from your computer您的计算机缺少 api-ms-win-core-winrt-string-l1-1-0.dll
【发布时间】:2016-07-20 10:52:41
【问题描述】:

我正在编写一个需要在 Windows 7、8.x 和 10 上运行的程序。该程序有一个(相对较小的)功能,它依赖于仅在 Windows 10 上可用的 Windows API。这个功能显然会不适用于 Win7,在调用这些 API 之前,我确保当前操作系统是 Windows 10。

为了使用这些 API,我不得不将我的 VS2015 项目配置为“使用 Windows 运行时扩展”(/ZW)并将“目标平台版本”设置为 10.0.10586.0。

但是,当我尝试在 Windows 7 上运行应用程序时,这会导致问题。我收到一个错误对话框,提示“程序无法启动,因为 api-ms-win-core-winrt-string-l1-1-您的计算机中缺少 0.dll”。我尝试在 Win7 机器上安装 VS2015 可再发行包,但这并没有解决问题。

知道如何让它在 Win7 上运行吗?我真的不想更改我的所有代码来动态加载所有 Windows 10 功能。

程序是用 C++ 编写的,我使用的 Windows API 来自 Windows.Devices.WifiDirect 命名空间。

【问题讨论】:

  • 这真的是关于 C# 还是 C++?您使用的 API 是什么?可能有一种适用于经典桌面应用程序的解决方案。
  • 仅限 Windows 10 应用程序的明显限制。不管你的善意是什么,都行不通。
  • C# 程序的一个很好的特性是它只在您使用它们的代码时才加载 DLL。最好用 [MethodImpl(MethodImplOptions.Noinlining)] 装饰方法。但显然你不是在谈论 C#,/ZW 选项是 C++/CX 编译选项。从 C# 调用 WinRT/UWP 方法也很容易,但是您必须手动编辑项目文件以添加所需的 <TargetPlatformVersion> 元素。现在添加对 WinRT 库的引用。
  • 对不起,我忘了说这是一个 C++ 程序。我使用的 Windows API 来自 Windows.Devices.WifiDirect 命名空间。
  • @HansPassant,您的建议解决方案是否适用于 C++ 项目?我不确定我是否理解你的提议。

标签: c++ .net windows visual-studio win-universal-app


【解决方案1】:

我最终解决了这个问题,方法是将我所有仅限 Win10 的 API 调用移动到使用 /ZW 编译的代理 DLL 中。然后,我从主程序中删除了 /ZW 开关,然后允许它在 Windows 7 下运行。代理 DLL 仅在我的程序在 Windows 10 机器上运行时加载(使用 LoadLibrary() 调用)。

这解决了问题。我确实必须为 DLL 编写一些代理函数,但这比为所有仅 Win10 的 API 调用编写的开销要小得多。

我仍然希望听到更好的解决方案,如果有的话。

【讨论】:

    【解决方案2】:

    使用“ABI”API 可以在不使用 /ZW 开关的情况下访问 Windows 10 API。更多细节在这里:

    https://blogs.msdn.microsoft.com/oldnewthing/20160629-00/?p=93775

    您必须通过 LoadLibrary/GetProcAddress 使用“RoGetActivationFactory”和“WindowsCreateString”等 API,因为您无法链接到它们,因为它们在 Windows 7 上不可用。不要忘记定义您的 WINVER 和_WIN32_WINNT 到 Windows 7:

    https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx

    这将允许您不链接到 Windows 7 上不可用的任何 API。

    【讨论】:

      猜你喜欢
      • 2016-09-02
      • 2018-08-18
      • 1970-01-01
      • 2018-04-09
      • 2020-03-13
      • 2018-01-26
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多