Visual Basic SaveDialog 缺少 dll

Posted

技术标签:

【中文标题】Visual Basic SaveDialog 缺少 dll【英文标题】:Visual Basic SaveDialog missing dll 【发布时间】:2015-09-03 13:26:48 【问题描述】:

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

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

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

"程序无法启动,因为 api-ms-win-crt-runtime-l1-1-0.dll 是 从您的计算机中丢失。尝试重新安装程序来解决这个问题 问题。”

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

我已经搜索了两天来解决这个问题。我使用了 Dependency Walker 并找到了一个据报道丢失的其他 dll 列表,其中大部分在 MShtml.DLL 下

我认为我的程序中可能没有正确引用某些内容,但我不确定在哪里查看。感谢您的帮助!

【问题讨论】:

有人犯了一个大错误,将操作系统 DLL 从较新版本的 Windows 复制到这台机器上。很难找到,当您使用 SaveDialog 时会加载许多 shell 扩展。问一下,两天应该会缩小一点。 【参考方案1】:

问题在于,作为 Visual C++ Redistributable 一部分的 KB2999226(通用 CRT)安装失败。 您的自动更新是否已关闭?

解决方案

安装 Windows 更新:

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

    下载 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

    运行 vcredist_x64.exe(64 位)或 vcredist_x86.exe(32 位)并选择卸载。再次运行 .exe 并选择安装

【讨论】:

感谢您的及时答复!对不起,我应该提到我正在使用 Visual Studio 2013。更新我的计算机并重新安装 Redistributable 会修复已编译的程序吗?该程序的用户是否必须经历相同的过程?谢谢! 它与编译的程序无关,如果用户没有正确的更新,那么这对他们来说将是一个问题,因为更新会丢失。当您引用dll 并且它已安装在客户端计算机上时,它会查找它,如果它不存在,它们就会有问题。 嗯,我明白了...有趣的是,保存对话框仍然有效。 嗯,它是框架本身的一部分,它仍然应该显示。问题在于更新本身,它缺少一些东西(不确定是什么失败)因此出现错误。 我遇到问题的计算机是我没有管理员权限的公司计算机。我会四处看看发生了什么。

以上是关于Visual Basic SaveDialog 缺少 dll的主要内容,如果未能解决你的问题,请参考以下文章

text Visual Basic代码Emmet

text Visual Basic代码片段

text Visual Basic代码命令

text Visual Basic代码Vue设置

text Visual Basic代码Vue扩展/插件

text Visual Basic的字典打印机