nuitka打包后exe出错: The Procedure Entry Point Adddlldirectory could not be located kernel32.dll

打包环境:

windows 7 sp1(64位),python 3.8(32位), nuitka 2.89, msvc(visual studio 2010安装时自带)

部署环境:

windows 7 sp1(32位)

问题(1):

nuitka打包python为exe程序,部署到新机器运行,出现以下错误:The Procedure Entry Point Adddlldirectory could not be located kernel32.dll,如下图所示:

解决办法:给部署环境的windows 7 sp1(32位)打上以下补丁即可:KB2533623,然后重启电脑即可,下载链接:b427a · 开源工具包/Windows6.1KB2533623补丁包32位64位 - AtomGit | GitCode

问题(2):

上述补丁安装完成后,还可能出现以下错误:无法启动此程序,因为计算机中丢失 api-ms-win-crt-runtime-l1-1-0.dll。尝试重新安装该程序以解决此问题。对于win10(22h2,没有该问题,可以直接运行)

解决办法:安装补丁 Windows6.1-KB2999226-x86.msu,下载地址为:

Download Windows 7 更新程序 (KB2999226) from Official Microsoft Download Center

成功运行:

参考:

无法定位程序输入点 AddDllDirectory 于动态链接库 KERNEL32.dll - 凡是過往;皆為序章 - 博客园

完美解决api-ms-win-crt-runtime-l1-1-0.dll 丢失问题 - Vitascope - 博客园

其他:

以下相关入口点函数缺失的问题也可通过该补丁(KB2533623)进行修复:

SetDefaultDllDirectories
AddDllDirectory
RemoveDllDirectory

参考:Microsoft 安全公告:不安全的库加载可能允许远程执行代码 - Microsoft 支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值