【问题标题】:"The procedure entry point ucrtbase_stdio_common"“程序入口点 ucrtbase_stdio_common”
【发布时间】:2017-06-12 20:14:52
【问题描述】:

我正在使用 python 给我的朋友做一个小项目,我把项目发给了他(在使用 cx_Freeze 之后),我把所有的文件夹都发给了他,我在其他没有 python 的 PC 上检查了程序并且它工作.首先错误是windows缺少文件“api-ms-win-crt-stdio-l1-1-0”,所以我从我的电脑向他发送了这个文件,但现在错误是:

"the procedure entry point ucrtbase_stdio_common_vfprintf could not be located in the dynamic link libary api-ms-win-crt-stdio-I1-1-0.dll"

【问题讨论】:

    标签: python windows


    【解决方案1】:

    要运行此应用程序,您需要安装Update for Universal C Runtime in Windows。手动复制系统库不是解决方案。

    【讨论】:

    • 这是KB3118401 的更新链接。或者让用户启用 Windows 更新,并选择安装推荐更新的选项。
    • 这里的情况是,在低级系统(Windows 10 之前)上,安装了一堆“api-ms-win-crt-*”DLL,将它们的导出转发到ucrtbase.dll。在 Windows 10 中,这些 DLL 不存在于磁盘上,而是与其他 API 集一样,CRT 集实际上是在 apisetschema.dll 中定义的。
    • @eryksun:你确定 Windows 10 吗? api-ms-win-*.dll 文件存在于我的 Windows 10 机器上的文件系统中。它们似乎没有包含太多代码,所以我假设它们只是转发器。但奇怪的是,它们是 x86 模块,在 64 位系统上。它们位于 %SYSTEMROOT%\System32 中(在 SysWOW64 中具有相同的副本)。
    • 它们是专门的“api-ms-win-crt-*”DLL 吗?也许它们是由 Visual Studio 安装的,尽管我安装它时没有任何“api-ms-win-crt-*”DLL 存在,或者根本没有任何“api-*”DLL。我只有“%SystemRoot%\System32\apisetschema.dll”,它定义了 API 集映射到实现 DLL。
    • @eryksun:还有非 CRT DLL(例如 api-ms-win-mm-misc-l1-1-1.dll)。不过,您是对的,它们可能不是核心 Windows 10 模块。它们的时间戳与 apisetschema.dll 不同(它们似乎与我在 2015 年从 Windows 8 升级到 Windows 10 的时间大致一致)。在安装了干净的 Windows 10 的系统上,我没有找到它们,也没有找到 apisetschema.dll,尽管系统上安装了 Visual Studio 12/13/15。
    猜你喜欢
    • 2022-08-03
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多