SEHException未得到处理

时间:2011-08-02 09:19:10

标签: c# .net visual-studio-2010

我有一个vs2010 c#解决方案昨天工作正常。

当我今天尝试运行一个调试实例时,我不断处理SEHException

启动表单的InitializeComponent方法中抛出此错误。

任何想法?

这是堆栈跟踪:

System.Runtime.InteropServices.SEHException was unhandled
  Message=External component has thrown an exception.
  Source=System.Drawing
  ErrorCode=-2147467259
  StackTrace:
       at System.Drawing.SafeNativeMethods.Gdip.GdipCreateFontFromLogfontW(HandleRef hdc, Object lf, IntPtr& font)
       at System.Drawing.Font.FromLogFont(Object lf, IntPtr hdc)
       at System.Drawing.Font.FromHfont(IntPtr hfont)
       at System.Drawing.SystemFonts.get_DefaultFont()
       at System.Windows.Forms.Control.get_DefaultFont()
       at System.Windows.Forms.Control.GetDefaultFontHandleWrapper()
       at System.Windows.Forms.Control.get_FontHandle()
       at System.Windows.Forms.ContainerControl.GetFontAutoScaleDimensions()
       at System.Windows.Forms.ContainerControl.get_CurrentAutoScaleDimensions()
       at System.Windows.Forms.ContainerControl.get_AutoScaleFactor()
       at System.Windows.Forms.ContainerControl.PerformAutoScale(Boolean includedBounds, Boolean excludedBounds)
       at System.Windows.Forms.ContainerControl.PerformNeededAutoScaleOnLayout()
       at System.Windows.Forms.Form.OnLayout(LayoutEventArgs levent)
       at System.Windows.Forms.Control.PerformLayout(LayoutEventArgs args)
       at System.Windows.Forms.Control.System.Windows.Forms.Layout.IArrangedElement.PerformLayout(IArrangedElement affectedElement, String affectedProperty)
       at System.Windows.Forms.ContainerControl.LayoutScalingNeeded()
       at System.Windows.Forms.ContainerControl.set_AutoScaleMode(AutoScaleMode value)
       at FirstWindow.Form1.InitializeComponent() in C:\Users\Ash\Documents\Visual Studio 2010\Projects\FrameworkClientV2 - No Security\FirstWindow\Form1.designer.cs:line 32
       at FirstWindow.Form1..ctor() in C:\Users\Ash\Documents\Visual Studio 2010\Projects\FrameworkClientV2 - No Security\FirstWindow\Form1.cs:line 27
       at FirstWindow.Program.Main() in C:\Users\Ash\Documents\Visual Studio 2010\Projects\FrameworkClientV2 - No Security\FirstWindow\Program.cs:line 18
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

随机记录我的gf昨晚打破了我的笔记本电脑屏幕,所以我在外接显示器上运行......这可能与它有什么关系吗?

这是代码和错误的行..

private void InitializeComponent()
{
    this.components = new System.ComponentModel.Container();
    ///////////////////The line below throws the exception
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    /////////////////////////////// 
    this.Text = "Form1";
}

4 个答案:

答案 0 :(得分:11)

这可能与昨天开始发生的广泛报道的问题相同。参见

http://forums.asp.net/t/1704958.aspx/9/10?Re+SEHException+thrown+when+I+run+the+application

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/0f78401b-77b2-4052-a26a-e98d2ec0afa9

如果你的机器上有“Trusteer Rapport”,请尝试卸载

答案 1 :(得分:1)

老实说,zeroid的答案并没有解决我的问题。所以为了完整起见,我想补充说avira也造成了这样的问题

答案 2 :(得分:0)

在主线程中加载非托管函数(来自DLL)时,可能会发生此问题。 我通过在与主线程不同的线程中加载这些非托管函数来解决此问题,例如,您可以使用BackgroundWorker

答案 3 :(得分:0)

我偶然发现了这一点,因为我突然遇到了同样的问题。在OP之后的几年,我正在使用VS2015。昨天我的解决方案工作正常,我的笔记本电脑连接到外接显示器。今天我在家工作,没有额外的显示器。除了OP关于切换屏幕设置的评论之外,我不会认为它是相关的。