博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EmbeddedWebBrowser网站报“Invalid floating point operation”异常的解决方法
阅读量:4551 次
发布时间:2019-06-08

本文共 1395 字,大约阅读时间需要 4 分钟。

我一直使用EmbeddedWebBrowser来做一个自己用的浏览器,不过发现在进入某些网站是浏览器卡死或崩溃,查看错误日之后发现基本都是Flash.ocx Active控件先产生异常,然后抛出Invalid floating point operation的错误,产生这种错误的网站基本上都是些视频网站,最典型的就是腾讯视频,对于这个异常的处理方法,一直没找到,直到最近看了园子里的这篇文章

之后才找到解决问题的方法,按照上面的介绍,我在主窗体的Create事件中加入了代码:

Set8087CW(Longword($133f));

编译 运行 测试 问题依旧!

难道是这种办法是忽悠人的???

我的浏览器都是动态创建的,会不会是这个原因??我也在浏览的创建事件中加入了上面的代码,测试后发现问题依旧,无奈之下突然想起了谷歌,于是随便搜了一下,结果发现了这个:

function Get8087CW: Word; // for D5asm        PUSH    0        FNSTCW  [ESP].Word        POP     EAXend;procedure TForm1.FormCreate(Sender: TObject);begin  Timer1.Enabled := False;  Timer1.Interval := 5000; // 5 sec  Saved8087CW := Get8087CW;end;procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,  Headers: OleVariant; var Cancel: WordBool);begin  Timer1.Enabled := False;  System.Set8087CW($133F); // Disable all fpu exceptionsend;procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;  const pDisp: IDispatch; var URL: OleVariant);begin   Timer1.Enabled := True;end;procedure TForm1.Timer1Timer(Sender: TObject);begin  Timer1.Enabled := False;  Set8087CW(Saved8087CW);end;

得到这个答案后,我立即在WebBrowser的WebBrowser1BeforeNavigate2事件中加入了

Set8087CW($133F);

并未按照原帖的方法处理,神奇的事情发生了,这个问题居然解决了。

看了看原帖,原来只是强制关闭了FPU 浮点错误

后继测试还表明,这种关闭并不完全,有时还是会抛出Invalid floating point operation异常的,不过问题已经得到解决了!

转载于:https://www.cnblogs.com/uws2056/p/3291794.html

你可能感兴趣的文章
10)将地址换成常量
查看>>
箭头函数
查看>>
android MVC && MVP && MVVM分析和对照
查看>>
jsp知识点
查看>>
第10课 OpenGL 3D世界
查看>>
simulate_screencap
查看>>
CSS知识点汇总(持续添加...)
查看>>
怎样让HTML5调用手机摄像头拍照——实践就是一切
查看>>
BZOJ 1901 Zju 2112 Dynamic Rankings 与更改的树董事长
查看>>
SDUT 2933-人活着系列Streetlights(最小生成树Kruskal+和理查德设置来实现)
查看>>
Quartus II 11.0破发点(不同的是低版本号)
查看>>
cocos2d-x3.0 解释具体的新的物理引擎setCategoryBitmask()、setContactTestBitmask()、setCollisionBitmask()...
查看>>
Cocos2d-x
查看>>
FIR滤波器设计
查看>>
SQL数据库查询获取两个时间差
查看>>
HDU 6103 Kirinriki
查看>>
ZKEACMS 无法运行问题汇总
查看>>
张量不同数轴的平均值计算
查看>>
[js]将某个函数放在onload事件中最先执行
查看>>
github
查看>>