在 Delphi 2010 和 Delphi 2007 中,我在 WebBrowserBeforeNavigate / WebBrowserDocumentComplete 上使用 Set8087CW 来防止 FPU 错误损坏我的应用程序。但是,在 Delphi XE2 中,至少在 64 位模式下似乎不起作用。当单击链接(任何链接)时,会出现“浮点除以零”的错误。(将网站地址或内容初始加载到 TWebBrowser 中可以正常工作。)调用堆栈显示,这发生在 system32\D3D10Warp.dll 内部(可能由 IE9 使用),响应于 TApplication.ProcessMessage(两者之间有一些 ???)。
SGet8087CW
是什么? - TLamaSetMXCSR
。我的建议是同时使用SetMXCSR
和Set8087CW
。32位和64位的Windows都可以使用FPU和SSE操作,无论Delphi使用什么浮点运算。 - user743382