我们目前正在对Windows应用程序进行Beta测试,该应用程序是使用最新的C ++ Visual Studio构建的,并且可以在Windows 10上运行。该应用程序动态链接VC ++库(对于我们来说,静态链接不是一个选择)。
在我们测试人员的75%的计算机(包括我们所有的dev计算机)上,该应用程序在安装后即开即用,但在加载动态系统库的过程中,其他一些应用程序却无法启动并失败(大概) (因为它不会像运行时错误一样触发任何会写入minidump的异常)。
如果我们无法在本地重现该问题(在两个全新安装了Windows 10且没有构建环境的全新设备上,它是开箱即用的),您将如何调试该问题,并且< strong>关于库调用可能出什么问题的信息很少?
答案 0 :(得分:1)
c000001d
是非法的指令异常代码。
要么您要针对客户CPU不支持的指令集(例如AVX2或SSE4.1),要么可执行文件已损坏(例如,以文本模式而不是二进制模式下载)。
为了获得最佳的可移植性,在使用VC ++进行编译时,请不要指定/arch:AVX
或/arch:AVX2
。然后,编译器将针对给定体系结构(带有SSE2的x86或x86_64)上可用的基本指令集。