这两天用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
分享到:
相关推荐
解析主机为: 112.125.43.138 已连接. 正等待响应. 220 Microsoft FTP Service USER 123000 331 Password required for 123. ...500 Invalid PORT Command. PASV 227 Entering Passive Mode (10,247,80,183,117,51).
NULL 博文链接:https://wilian.iteye.com/blog/1992365
install.log文件,找到卸载工具unwise32.exe,双击打开,即可实现方便轻松干净完全卸载。
两步,帮助大家很容易实现卸载。 (1)下载压缩包并解压得到install.log文件 (2)找到License的默认安转路径,找到卸载工具unwise32.exe,双击打开,选择(1)步下载的install.log文件,并点击next,即可实现完全...
大家在使用Protel 99 SE时在导入自定义库时是否经常遇到莫名其妙的弹窗 'Format '%x' invalid or 问题,此资源提供了彻底解决此问题的办法,内有解决工具和说明文件。
Delphi 10.3 ,程序运行到DataModule2.ClientDataSet1.ApplyUpdates(0);语句时,提示“Invalid parameter”错误
Delphi 获取文件访问时间,也主是最后一次打开文件 的时间,基于Delphi7实现。相关代码如下: procedure TForm1.SpeedButton1Click(Sender: TObject); begin if OpenDialog1.Execute then begin Edit1....
java.lang.IllegalStateException: Invalid name=“com.alibaba.dubbo.config.ProtocolConfig#0” contains illegal character, only digit, letter, ‘-’, ‘_’ or ‘.’ is legal 原因: 如果没有指定id属性,...
invalid syntax是什么错误
强烈推荐,arcgis卸载出现,install.log文件复制到bin目录,找到卸载工具unwise32.exe
invalid_cache.csv
cmake-3.18.1 64位安装包。官网下载的。
7.error:floating point error:invalid number. 8.Reverse flow infaces on pressure-outlet-X 9.temperature limited to 1.0000e+00 10.fluent received a fatal signal (SEGMENTATION VIOLATION) 11.……
myelicpse 出现Invalid location of tag的问题解决方法
Keil C 编译器常见警告与错误信息的解决方法 1. Warning 280:’i’:unreferenced local variable 说明局部变量i 在函数中未作任何的存取操作 解决方法消除函数中i 变量的宣告 2 Warning 206:’Music3’:missing ...
Android闪退收集
微信分享JSSDK-invalidsignature签名错误的解决方案.docx
FastReport.v4.15 for.Delphi.BCB.Full.Source企业版含ClientServer中文修正版支持Delphi 4-XE5 and C++Builder 6-XE5. D2010以上版本(D14_D19)安装必读 delphi2010以上版本(D14_D19)使用者安装时,请将res\frccD14_...
Altium Designer 19 原理图复制出现InvalidParameter at AdvSch.dll, Base Addre... 报错的解决办法
针对arcgis9 卸载license时,出现“invalid install.log file”提示问题。 本人有arcgis9完整安装包,有需要可以评论邮箱,看见会发