.Net中使用com组件后发生System.ArithmeticException异常的解决办法

sdoa4441125

sdoa4441125

2016-01-29 12:35

.Net中使用com组件后发生System.ArithmeticException异常的解决办法,.Net中使用com组件后发生System.ArithmeticException异常的解决办法

最近在开发一个.Net程序,其中涉及到对com组件的调用,在调用完以后如果使用一些小的测试程序继续运行,一切正常,但是在使用带有GUI的form程序继续执行时,总是出现以下异常Exception: System.ArithmeticExceptionMessage: 算术运算中发生溢出或下溢。Source: System.Drawing at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont) at System.Drawing.Font..ctor(String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet) at Payment.Phone.ErrorForm.InitializeComponent() in E:cvsrootdevelopepaymentPhoneErrorForm.cs:line 108 at Payment.Phone.ErrorForm..ctor(Util util, String msg) in E:cvsrootdevelopepaymentPhoneErrorForm.cs:line 139 at Payment.Phone.ConfirmForm.lblNext_Click(Object sender, EventArgs e) in E:cvsrootdevelopepaymentPhoneConfirmForm.cs:line 212
后来到处找资料,花了我一天的时间才给解决,以下是我的解决办法:1.声明一个DLL掉用 [DllImport("msvcr70.dll", CallingConvention = CallingConvention.Cdecl)] unsafe public static extern int _controlfp(int n, int mask);2.在代码中添加以下代码方法 internal void ResetFPCR() { const int _EM_OVERFLOW = 0x0009001F; const int _MCW_EM = 0x000FFFFF; _controlfp(_EM_OVERFLOW, _MCW_EM); }3.在调用完com组件后,调用以上方法,如: //这里调用com组件 //然后执行Reset方法 ResetFPCR(); 注:具体详细请看http://support.microsoft.com/default.aspx?scid=KB;EN-US;q326219&
展开更多 50%)
分享

猜你喜欢

.Net中使用com组件后发生System.ArithmeticException异常的解决办法

电脑网络
.Net中使用com组件后发生System.ArithmeticException异常的解决办法

在jsp程序中使用com组件

Java JAVA基础
在jsp程序中使用com组件

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

调试 ASP 中使用的 Visual Basic COM 组件

ASP
调试 ASP 中使用的 Visual Basic COM 组件

创建 Visual Basic COM 组件在 ASP 中使用

ASP
创建 Visual Basic COM 组件在 ASP 中使用

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

.NET Framework 安装失败的解决办法

电脑网络
.NET Framework 安装失败的解决办法

win 10升级后桌面显示异常的解决办法

电脑入门
win 10升级后桌面显示异常的解决办法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

VB 从零开始编外挂(三)

VB 从零开始编外挂(三)

实现页面中按钮刷新的N种方法

实现页面中按钮刷新的N种方法
下拉加载更多内容 ↓