我正在使用 C# 中的 .NET 3.5 应用程序,它定期调用一些遗留 C++ 代码。我注意到,当我将鼠标悬停在具有下拉列表的 Infragistics UltraGrid 上时,调用 C++ 有时会导致“上溢或下溢算术运算”。我发现这只发生在 C++ 代码执行以下操作时:
Word SavedWord = Default8087CW;
Set8087CW(0x133f); // Disable all fpu exceptions
...
Set8087CW(SavedWord);
如果我注释掉最后一行,我的 .NET 应用程序中将不再出现错误。我没有注意到应用程序的其余部分有任何其他副作用。作为快速修复,我想将此行注释掉。禁用 FPU 异常而不重置控制字的后果是什么?