私は、C# で .NET 3.5 アプリケーションを使用しており、レガシー C++ コードを定期的に呼び出しています。ドロップダウン リストを持つ Infragistics UltraGrid にマウスを合わせると、C++ を呼び出すと「オーバーフローまたはアンダーフロー算術演算」が発生することがあることに気付きました。これは、C++ コードが次のことを行う場合にのみ発生することがわかりました。
Word SavedWord = Default8087CW;
Set8087CW(0x133f); // Disable all fpu exceptions
...
Set8087CW(SavedWord);
最後の行をコメントアウトすると、.NET アプリケーションでエラーが発生しなくなりました。アプリケーションの残りの部分で、他の副作用に気づいていません。簡単な修正として、この行をコメントアウトしたままにします。FPU 例外を無効にし、コントロール ワードをリセットしないと、どのような影響がありますか?