问题描述
从“项目属性” /“编译” /“高级优化”中查看VB6 IDE中出现的最后一个复选框:
这与大约25年前的故障硬件(1994?)有关,但是我很难想象现在的任何CPU仍然会出现此问题。
但是,我不确定此检查是否有任何令人希望的副作用,可能意味着它值得保留?还是去除的不良影响?
我看到Delphi已经解决了这个问题,但是我找不到VB6的任何东西。
从这些Q中我得到的印象是,它不再是Delphi真正关心的问题。
这是什么摘要:
删除安全的奔腾FDIV检查
这是另一个浮点数 优化。英特尔早期的奔腾芯片中的一些错误 影响了某些浮点除法计算。默认, VB的数学程序可以防止Pentium错误,但是 VB代码中的数学运算比让处理器芯片执行运算要慢 为了你。如果您确信自己的程序不会在 奔腾FDIV错误的计算机上,您可能需要激活它 优化。
(ref1)
和一些用于检查硬件是否损坏的代码,它说明了问题本身:
' return True if the CPU suffers from the FDIV bug Function IsBuggedPentium() As Boolean IsBuggedPentium = ((1 / 3221224323) * 3221224323) <> 1 End Function
请注意,此代码在运行的VB应用程序中始终返回False 作为p代码或使用标准编译选项进行编译。至 实际检测到该错误,您必须在 使用“删除安全奔腾(tm)FDIV检查”编译的应用程序, 在“项目属性-高级优化”对话框中。
(ref2)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)