Visual Basic SaveDialog 缺少 dll

Visual Basic SaveDialog missing dll

我用 Visual Basic 编写了一个用户界面,它向 AutoDesk Inventor 发送命令以创建 3D CAD 组件。在我的程序快结束时,保存了 CAD 文件并出现了一个保存对话框。有一段时间它工作得很好,但现在出现错误。这是相关的代码段:

SaveDialog.Filter = "Inventor Part | *.ipt|Step File | *.stp"
SaveDialog.DefaultExt = "ipt"
SaveDialog.ValidateNames = True
SaveDialog.ShowDialog()

在显示的最后一行,我得到如下 运行 次错误:

"The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing from your computer. Try reinstalling the program to fix this problem."

关闭此错误消息后,SaveDialog 框仍会出现并且工作正常。当然,在编译版本上,错误框实际上并没有出现,程序只是无限期地挂起。

这两天我一直在寻找解决这个问题的办法。我使用了 Dependency Walker 并找到了一个据报道丢失的其他 dll 列表,其中大部分在 MSHTML.DLL

我想我的程序中可能有一些地方没有正确引用,但我不确定去哪里找。感谢您的帮助!

问题是作为 Visual C++ Redistributable 一部分的 KB2999226 (Universal CRT) 安装失败。 你的自动更新关闭了吗?

解决方案

安装Windows更新:

  1. 转到开始-控制面板-Windows更新 然后点击 检查更新。安装所有可用更新。安装更新后,重新启动计算机。重新启动后再次重复上述步骤,直到没有可用的更新。

  2. 下载 Visual C++ Redistributable:

    对于 Windows 64 位 http://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe

    对于 Windows 32 位 http://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe

  3. 运行 vcredist_x64.exe(64 位)或 vcredist_x86.exe(32 位)和 select 卸载。 运行 .exe 再次 select 安装