zoukankan      html  css  js  c++  java
  • 打开窗体,弹出GDI+ 中发生一般性错误。

    1、错误提示

    ---------------------------
    Prompt
    ---------------------------
    Error:
    GDI+ 中发生一般性错误。

    Stack Trace: 在 System.Drawing.Graphics.get_Clip()

    在 System.Drawing.GraphicsContext..ctor(Graphics g)

    在 System.Drawing.Graphics.Save()

    在 System.Windows.Forms.PaintEventArgs.get_Graphics()

    在 System.Windows.Forms.GroupBox.OnPaint(PaintEventArgs e)

    在 System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)

    在 System.Windows.Forms.Control.OnPrint(PaintEventArgs e)

    在 System.Windows.Forms.Control.WmPrintClient(Message& m)

    在 System.Windows.Forms.Control.WndProc(Message& m)

    在 System.Windows.Forms.GroupBox.WndProc(Message& m)

    在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

    在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

    在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ---------------------------
    中止(A) 重试(R) 忽略(I)
    ---------------------------

    2、GDI+的前世今生

    GDI+全称图形设备接口,Graphics Device Interface (GDI) ,他的爸爸叫做GDI, 用C写的。Windows XP出来以后用C++重新写了一下,变成了GDI+。从.NET Framework 1.0开始,GDI+就被正式封装在了.NET Framework里面,并被广泛地应用到了所有和图形图像相关的程序中。不幸的是,这个GDI+引入了微软有史以来最大的2个patch,造成了Microsoft IT, Support, Developer, Tester的无数麻烦。[1][2]

    GDI+没有用显卡加速,所以Windows Vista推荐用Windows Display Driver Model (WDDM)了,支持渲染,3D加速。不过普通的应用程序,用GDI/GDI+其实是完全足够了,所以GDI+是在微软平台上开发图形图像程序的最好选择了。至少现在没有听说微软准备重新写GDI

    GDI+ 可以用来做图形处理,也可以做图像处理。这里只分析几个使用.NET Framework容易出错的地方。 

     3、问题原因

    1、刚开始怀疑是系统问题,因为这个是突然开始提示的,之前程序没有出现这个问题。

    2、卸载了系统更新,卸载了问题发生后的软件,依然存在。

    3、怀疑弹出的窗体问题,自己新建了一个全新的窗体,没有增加任何操作和业务的代码,仅仅是窗体,依然报错。

    4、怀疑是编译工具和窗体组件的问题,修复后依然存在。

    通过软件监控到报错时系统的操作后,发现了系统中有个读取xml文件的操作,而且是多线程进行实时读取,读取操作需要释放资源再打开。因为xml操作比较多,将操作最频繁的方法取消掉,再试,发现报错的频率明显降低。

  • 相关阅读:
    7-3.自定义列表
    GoLang 使用协程与管道随机生成姓名
    [Unity3D] 点击物品显示物品信息
    [Unity3D] 碰撞物体添加到背包
    [PS] DDS文件导入插件
    [Unity3D] 给角色添加武器
    [Unity3D] 刚体 碰撞器 触发器
    [Unity3D] 物体的几种移动方法
    [Unity3D] 解决导入的模型出现闪烁的问题
    [Unity3D] 人物角色跳跃(动画跳跃&刚体跳跃)
  • 原文地址:https://www.cnblogs.com/hongmaju/p/15589674.html
Copyright © 2011-2022 走看看