LabVIEW程序因图像.cpp或绘图错误而崩溃 点击:25 | 回复:0



fjczd

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:594帖 | 36回
  • 年度积分:809
  • 历史总积分:1400
  • 注册:2008年8月14日
发表于:2023-10-26 19:57:19
楼主

LabVIEW程序因图像.cpp或绘图错误而崩溃

问题

LabVIEW程序因图像.cpp或绘图错误而崩溃.cpp。

正在通过cRIO-9034运行一个独立的LabVIEW应用程序,它一直崩溃,在drawmgr中出现错误.cpp

在Windows任务管理器中注意到LabVIEW使用的GDI对象数量接近10,000

解决办法

尝试减少前面板对象的数量。

这将有助于减少LabVIEW使用的GDI对象总数。

如果在运行VI时GDI对象随着时间的推移而增加,请检查VI中是否存在可能在前面板上重复渲染对象的递归元素。为此,可以在Windows任务管理器中跟踪GDI对象的使用情况。

更改GDI对象句柄的限制。MSDN:GDI对象(Windows)中介绍了在Windows中增加GDI对象数的方法(2000年之后)。

安装制造商提供的最新视频驱动程序。这通常会修复导致GDI溢出的内存泄漏。

更改调色板加载设置。

在任何LabVIEW窗口中,转到顶部工具栏并导航到工具»选项...

这应该会打开选项窗口。导航到控件/函数面板。

顶部应该有用于加载的选项,在需要时选择“加载选项板”以尝试缓解崩溃。

从目录中删除不必要的库。LabVIEW对每个调色色板图像使用一个GDI对象,因此大量调色板VI将导致此崩溃。<LabVIEW>\user.lib

如果在VI中连续打开和关闭数据库,请通过收集更多要发送的数据来增加连接到数据库之前的时间量。

重新启动cRIO(或使用的其他硬件)可能会提供临时解决方案,但请按照上述步骤操作,以防止问题再次出现。

如果在调查上述选项后问题仍然存在,请致电NI支持人员,以帮助进一步解决问题。

附加信息

GDI(图形设备接口)对象是负责表示图形对象的固定Windows资源。每个GDI对象都是进程专用的,这意味着只有创建GDI对象的进程才能使用对象句柄。

每个进程(包括LabVIEW.exe都受Windows限制为10,000个GDI对象,并且请求更多GDI对象会导致LabVIEW崩溃。此崩溃被NI错误报告工具(NIER)捕获为图像中的DAbort.cpp或drawmgr.cpp。要确认GDI使用率过高是导致崩溃的原因,请使用Windows任务管理器查看LabVIEW使用的GDI对象数量。对于Windows10,默认情况下不显示GDI值。需要转到任务管理器中的详细信息表-->右键单击“名称”列和“选择列”。

 

这是LabVIEW的一个功能介绍,更多的使用方法与开发案例,欢迎登录官网,了解更多信息。有需要LabVIEW项目合作开发,请与我们联系。




热门招聘
相关主题

官方公众号

智造工程师