我一直在为应用程序开发 C# 和 WPF 插件。
它一直运行良好,直到在 Win7 机器上启动。症状是 Microsoft .NET Framwork 的“未处理异常”对话框在System.ArithmeticException (算术运算中的溢出或下溢)启动时弹出,并提供指向System.Windows.Controls.Primitives.Track.ComputeScrollBarLengths (...)
和更深的堆栈跟踪。
于是,我开始调试应用程序:它显示调用 user32.dll 的 setParent 时抛出了 System.ArithmeticException。这是在应用程序调用显示附加 UI 时完成的。
public bool ShowUI(int Parent)
{
userControl = new MyUserControl(); // Extends System.Windows.Forms.UserControl
SetParent(userControl.Handle, new IntPtr(Parent)); // <- exception thrown here
...
}
什么可能导致这个问题?