我有使用 VS 2017 15.7.4 构建的应用程序,它是 64 位命令行 C++ 应用程序。
我已将其与所有依赖项 DLL 一起复制到使用 Windows 10 Enterprise 2016 LTSB 64 位(版本为版本 10.0.14393)的机器。应用程序有效。
然后我将其复制到另一台具有相同版本Windows的机器上。在那里它立即停止并显示消息停止工作.
编辑:找到原因,详细信息在评论中
我试图解决这个问题:
- Visual Studio 2017 可再发行组件并没有改变这种情况。
- 事件日志有一些崩溃事件,事件 1001:除了所有依赖模块 dll 已加载之外,没有任何有用的信息。
- 事件 1000:没有任何用处
- 事件 1005 有消息:
由于以下原因之一,Windows 无法访问该文件:
网络连接有问题,文件所在磁盘有问题
存储在该计算机上或安装在该计算机上的存储驱动程序;或者
磁盘丢失。 Windows 关闭了程序 my_program.exe 因为
这个错误。
程序:my_program.exe 文件:
错误值列在“附加数据”部分中。用户操作
- 再次打开文件。这种情况可能是一个临时问题,当程序再次运行时它会自行纠正。
- If the file still cannot be accessed and
- 它是在网络上,您的网络管理员应该验证网络没有问题并且服务器可以正常工作
联系过。
- 它位于可移动磁盘上,例如软盘或 CD-ROM,请验证该磁盘是否已完全插入计算机。
- 通过运行 CHKDSK 检查并修复文件系统。要运行 CHKDSK,请单击“开始”,单击“运行”,键入 CMD,然后单击“确定”。在命令下
提示时,键入 CHKDSK /F,然后按 ENTER。
- 如果问题仍然存在,请从备份副本恢复文件。
- 确定是否可以打开同一磁盘上的其他文件。否则,磁盘可能会损坏。如果是硬盘,请联系您的
管理员或计算机硬件供应商寻求进一步帮助。
附加数据错误值:00000000 磁盘类型:0
- 我尝试在不同的机器上使用 VS 2017 15.8.4(与 15.7.4 不同)编译它,然后二进制文件可以在目标机器上运行。但这不是解决方案,因为这台机器不用于“夜间构建”。
- Depends 不显示任何缺失的依赖项
正如评论者指出我找到答案的正确方法:
事后调试 - 附加 WinDbg - 向我显示错误是“非法指令”,该指令也是“vmovdqu”,即 AVX 指令。并且实用程序CoreInfo显示该机器CPU不支持AVX指令。解决方案是在没有此支持的情况下进行编译。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)