これでFPUのCTRLレジスタをリセットできます:
http://support.microsoft.com/kb/326219
しかし、現在のレジスタを保存して後で復元するにはどうすればよいでしょうか?
それは.netコードからのものです..
私がやっていることは、.net dll を COM モジュールとして呼び出す Delphi からです。Delphi でレジスタをチェックCtrlすると 1 つの値が得られ、.net コードで controlfp をチェックすると別の値が得られます。私が必要としているのは、本質的にこれを行うことです:
_controlfp(_CW_DEFAULT, 0xfffff);
したがって、.net コードでの浮動小数点計算はクラッシュしませんが、Ctrl戻るときにレジスタを復元したいと考えています。
多分私はしませんか?たぶん、Delphi は必要に応じてそれらをリセットしていますか? 私はこの問題についてここでブログを書きました。