这两天用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

http://blog.csdn.net/shuaihj/article/details/6406781

Delphi “Invalid floating point operation.”错误的解决方法(使用System单元提供的Set8087CW函数禁用浮点异常)的更多相关文章

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

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

  2. Delphi 多线程 “尚未调用CoInitialize错误”的解决方法

    在Delphi  多线程中出现“尚未调用CoInitialize错误”的解决方法 解决方法如下: function  TMyThread.ExecTimer: Boolean;begin  Resul ...

  3. java.io.StreamCorruptedException: invalid type code: AC错误的解决方法

    问题描述: 在向一个文件写入可序列化对象时,每次只想向文件的末尾添加一个可序列化的对象,于是使用了FileOutputStream(文件名,true)间接的构建了ObjectOutputStream流 ...

  4. 关于delphi软件运行出现Invalid floating point operation的错误的解决办法

    关于delphi软件运行出现Invalid floating point operation的错误的解决办法   关于delphi软件运行出现Invalid floating point operat ...

  5. Delphi中WebBrowser控件打开部分网站报"Invalid floating point operation”解决

    Delphi中WebBrowser控件打开部分网站报"Invalid floating point operation”解决 EmbeddedWBWebBrowserDelphi  最近用E ...

  6. 启动android程序和虚拟机时候出现如下错误的解决方法

    启动android程序和虚拟机时候出现如下错误的解决方法. 错误重现: [2011-07-13 16:22:48 - Emulator] invalid command-line parameter: ...

  7. 微信jssdk常见错误及解决方法

    调用config 接口的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息.以下为常见错误及解决方法: invalid url domain当前页面所在域名与使用 ...

  8. centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课

    centos linux 系统日常管理4  scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法  第十七节课 rsync可以增量同步,scp不行 ...

  9. 编程中遇到的Python错误和解决方法汇总整理

    这篇文章主要介绍了自己编程中遇到的Python错误和解决方法汇总整理,本文收集整理了较多的案例,需要的朋友可以参考下   开个贴,用于记录平时经常碰到的Python的错误同时对导致错误的原因进行分析, ...

随机推荐

  1. bzoj 2623 所罗门的咒语

    这一题其实我没做出来.... 我只是想吐吐槽. 题目要求识别验证码,而且连一点特征信息都不给! 我去偷看了一下数据,然后根据数据生成了图片: 我相信当年没有人能拿分吧. 贴一下transform.cp ...

  2. 异常:未能载入文件或程序集”DAL”或它的某一个依赖项——解决的方法

    以下是我再使用抽象工厂+反射重构机房时,在Factoy中出现了以下一个问题: 去网上查了一下资料,发现这是一个非常普遍的问题,它出现的原因主要有两种: 第一种: 载入DLL路径错误.解决的方法是调整D ...

  3. UVA 10581 - Partitioning for fun and profit(数论递推)

    10581 - Partitioning for fun and profit 题目链接 题意:给定m, n,表示分配给n个格子,分配m个数字进去,每一个格子最少1,而且序列要是递增的,问第k个字典序 ...

  4. Linux OpenCV读取视频失败,cvCreateFileCapture失败的解决

    背景: 近期想在嵌入式平台上开发QT+Opencv,无料PC机上编写的OpenCV程序老是打不开视频. 開始提示:OpenCV Error: Bad argument (Array should be ...

  5. C# - 接口的继承

    代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...

  6. js获取网页屏幕可见区域高度

    document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.docume ...

  7. WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化

    原文:WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化 [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制 ...

  8. ORA-01403: no data found

    在项目的存储过程中有这样一句话 select jgdm,jgmc into parm_mrjgdm,parm_mrjgmc From BL_KHXX  where jgdm=PARM_JGDM; 每次 ...

  9. Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity

    Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity ...

  10. HTML学习笔记(七)

    1.       假设想让div中的内容(content)垂直居中,能够将line-height的值设置与div的高度相等来实现. 2.       超伪类链接的四种形式: watermark/2/t ...