0

我正在使用 C# 中的 .NET 3.5 应用程序,它定期调用一些遗留 C++ 代码。我注意到,当我将鼠标悬停在具有下拉列表的 Infragistics UltraGrid 上时,调用 C++ 有时会导致“上溢或下溢算术运算”。我发现这只发生在 C++ 代码执行以下操作时:

Word SavedWord = Default8087CW;
Set8087CW(0x133f); // Disable all fpu exceptions

...

Set8087CW(SavedWord);

如果我注释掉最后一行,我的 .NET 应用程序中将不再出现错误。我没有注意到应用程序的其余部分有任何其他副作用。作为快速修复,我想将此行注释掉。禁用 FPU 异常而不重置控制字的后果是什么?

4

2 回答 2

2

解决方案可在此处找到:“从 C++ 库调用方法时 WPF 中的 StackOverFlowException ”。

感谢汉斯·帕桑特。

于 2012-06-04T13:07:11.073 回答
0

在其他机器上测试后,似乎注释掉了 Set8087CW(SavedWord); line 只解决了我机器上的问题。我的 Infragistics 版本 (8.2.20082.2204) 中似乎存在错误。回滚到 8.2.20082.1000 解决了这个问题。

于 2012-05-30T15:44:01.587 回答