【发布时间】:2020-03-18 11:43:38
【问题描述】:
我在 Windows 10 机器上安装了 VS2017,我正在其中构建我的 C++ 代码。当构建成功时,我可以在同一台机器上运行该 exe。但是,当我在另一台未安装 VS2017 的 winodws 10 机器上复制该 exe(以及所有相关的 DLL)时,会出现错误“由于找不到 urctbase.dll,代码执行无法继续”。
我将这些 dll(ucrtbase.dll vcrutime140.dll 等)复制到 exe 所在的同一位置并尝试运行它然后给出错误 “应用程序无法正确启动(0xc700000b)。单击确定关闭应用程序”
我安装了 VC Redistributable-2017 软件包以在该机器上设置运行时环境,但问题仍然存在。
谁能帮忙解决这个问题?
【问题讨论】:
-
您可以使用Dependency Walker 确保您已经考虑了所有 DLL 依赖项。
-
你可以使用dependency walker来获取更多关于加载依赖的信息
-
不要复制 dll,但要正确安装它们:support.microsoft.com/en-us/help/2977003/…
-
此类问题的一个原因是在目标机器上复制或安装 DEBUG 版本,而不是 RELEASE 版本。与调试相关的 DLL 不是 VC Redistributable 2017 软件包的一部分。
-
另请注意,VC 可再发行组件有单独的 32 位和 64 位版本。