【发布时间】:2008-10-10 13:51:51
【问题描述】:
我可以用这个来重置 FPU 的 CTRL 寄存器:
http://support.microsoft.com/kb/326219
但是我怎样才能保存当前的寄存器,并在以后恢复它们呢?
它来自 .net 代码..
我正在做的是从 Delphi 调用 .net dll 作为 COM 模块。在 delphi 中检查 Ctrl 寄存器会产生一个值,使用 .net 代码中的 controlfp 检查会产生另一个值。 我需要的,本质上就是这样做:
_controlfp(_CW_DEFAULT, 0xfffff);
所以我在.net代码中的浮点计算不会崩溃,但是我想在返回时恢复Ctrl寄存器。
也许我没有?也许德尔福在需要时重置它们? 我在博客上写过这个问题here。
【问题讨论】: