我们有一个使用Visual C ++ 2005构建的应用程序,并且有一位客户报告他收到了这个运行时错误:
Microsoft Visual C++ Runtime Library
Runtime Error!
Program: [path to our application]
R6002
- floating point support not loaded
据微软(on this page)称,可能的原因是:
此外,错误发生在他们使用我们的应用程序时(特别是在他们选择要处理的文件之后),而不是在应用程序启动时。
我意识到这是一个很长的镜头,但是之前有人见过这样的事吗?谷歌是非常无益的(有很多不受支持的说法,它是某种病毒感染的症状,但除此之外很少)。
感激地收到任何建议: - )
答案 0 :(得分:2)
您是否链接了CRT的静态版本?如果是这样,您需要在调用printf()的二进制文件中使用浮点变量。并且必须真正使用这些变量(即没有被comppiler优化)。
另一种可能性是CRT初始化和使用这些FP例程的代码之间的竞争,但这很难产生。
答案 1 :(得分:2)
R6002可能是由printf尝试打印包含百分号的字符串引起的。 这种printf失败的根本原因很可能是一个操纵任意文件并打印其名称的程序。令我惊讶的是,确实有人将百分号放在文件名中! (是的,我意识到这在技术上是合法的。)
答案 2 :(得分:0)
printf("%f \ n",(float)rand()/ RAND_MAX);
我在使用VS2010命令行cl编译的程序中遇到了相同的运行时错误。 报告的错误发生没有(浮动)强制转换,当我添加它时消失了。