必威体育Betway必威体育官网
当前位置:首页 > IT技术

delphi “Invalid floating point operation.”错误的解决方法

时间:2019-08-06 10:11:04来源:IT技术作者:seo实验室小编阅读:86次「手机版」
 

invalid floating point operation

这两天用webbrower写东西,有时候打开SSL加密站点时会出现”invalid floating point operation.”的错误,上网搜了下,把解决方法贴上。

导致原因

在Delphi2011中须要通过浮点单位控制指令设置浮点运算单位。浮点单位控制指令控制着浮点运算的精度、四舍五入的方式以及特定的浮点运算是否触发异常。能够參阅Intel处理器的具体文档。

在Delphi2011中有函数能够直接訪问处理器的控制指令。比方,能够使用Set8087CW函数改变8087CW控制指令的值,从而改变程序浮点计算的行为。编程人员须要自己负责在程序结束时重置这个指令。

解决的方法,就是直接禁用浮点异常,方法例如以下:

在在Delphi2011中,当使用OpenGL进行3D渲染时,推荐使用Set8087CW函数禁用浮点异常。能够在调用OpenGL函数之前,比方在mainForm的OnCreate的过程中写入: Set8087CW(0x133f)

实例代码

1.声明全局的变量保存原有的8087CW设置

var

Saved8087CW: word;

2.在mainForm的OnCreate过程中改变8087CW的值,改变之前先保存默认值

Saved8087CW := Default8087CW;

Set8087CW($133f); { disable all fpu exceptions }

3.在程序结束前,使用默认值重置8087CW指令值。在mainForm的OnClose过程中

Set8087CW(Saved8087CW);

4.另一点须要注意,假设在程序中使用了SceneControl.LoadSxFile加载了3D文档,那么必须在程序退出时,在Set8087CW之前调用IScene的Clearlayers方法清除图层,否则程序在退出时会出现异常。

參考代码为:

SceneControl1.Scene.ClearLayers;

Set8087CW(Saved8087CW);

5.还有在程序退出之前须要调用例如以下语句

(CoAoInitialize.Create as IAoInitialize).Shutdown

相关阅读

adobe reader安装失败提示错误代码150210该怎么办?

在安装Adobe Reader XI 的时候提示【Adobe Reader XI -Chinese Simplelified 安装完成之前被中断,错误代码150210】经了解同事之前

IDEA——错误: 找不到或无法加载主类Main

IDEA——错误: 找不到或无法加载主类Main 今天启动idea编写一个简单的java项目却发现运行报错。   还用命令检查自己jdk正确安

OFFICE 2010卸载 提示“安装程序包的语言不受系统支持

OFFICE 2010卸载 提示“安装程序包的语言不受系统支持”的解决方法转自:http://149banzhang.blog.51cto.com/239912/853943今天

Invalidate(TRUE)与Invalidate(FALSE)区别

使用Invalidate(TRUE)函数时,它会向消息队列中添加了WM_ERASEBKGND和WM_PAINT两个消息。 使用Invalidate(FALSE)函数时,它只会向消

双向可控硅漏电流 ?- 解决方法

在这之前先来了解几个概念: 感性负载:负载电流滞后负载电压一个相位差特性的为感性负载,有线圈负载的电路,叫感性负载。 容性负载:电

分享到:

栏目导航

推荐阅读

热门阅读