最近用EmbeddedWB控件做瀏覽器相關(guān)應(yīng)用的時候,發(fā)現(xiàn)有些網(wǎng)頁只要一打開就一定會蹦出一個“Invalid floating point operation”異常(關(guān)掉異常對話框以后,瀏覽器無響應(yīng)),而程序僅僅是一句
WebBrowser1.Navigate(Edit1.Text);
貌似很多含有Silverlight元素的網(wǎng)頁打開時都會帶出這個bug。而且關(guān)鍵是,錯誤提示完全讓人摸不著頭腦有木有?。。。?!
百思不得其解,遂Google之,得結(jié)論如下:
1、很多網(wǎng)友都遇見過同樣的問題
2、Borland官方解釋請點這里(我這打不開)
3、大概的情況是,在使用一些浮點操作時,微軟默認設(shè)計會拋出一系列的異常。這些異常按理說不應(yīng)該阻止程序運行。但不知道為什么,Delphi默認是截獲后又把異常拋了出來,被系統(tǒng)截獲就會影響程序運行了。Borland給的解決方法是,加一句
Set8087CW(Longword($133f));
來關(guān)閉這個機制. 你可以加在form的OnCreate事件里。
雖然問題解決了,不過不明白為什么,求高人指點。