首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi7: TBitmap.Canvas.Handle =0

Delphi7: TBitmap.Canvas.Handle =0
EN

Stack Overflow用户
提问于 2013-04-09 04:35:30
回答 1查看 355关注 0票数 0

我面对这个问题已经很长一段时间了,还没有找到任何可以帮助我解决这个问题的东西。我使用TBitmap接收来自摄像头(流)的数据,然后将图像保存到磁盘。有时会发生异常。经过几次测试,我发现了一个缺陷:TBitmap的画布的句柄属性的值为0。要绕过此问题,当我在句柄中检测到此值为0时,请重新启动应用程序(销毁并重新创建TBitmap不起作用),但有时此错误经常发生。有没有人遇到过这样的问题?我能做错什么呢?欢迎任何帮助。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-04-09 05:04:05

TBitmap在内部使用TBitmap.Canvas的TBitmapCanvas包装器对象。如果你有权访问源代码(Graphics.pas),你应该看一看。如果出现错误,一个或多个WinAPI GDI调用可能不会处理返回值。一些GDI调用失败的机会非常小,所以忽略检查每个返回值以获得一些性能有点冒险,但在高负载的情况下,这些可能是事情无论如何都会出错的第一个指标。

我建议您尝试使用debug DCU来使用TBitmap.Canvas逐步执行您的程序,列出用于工作的GDI调用,然后编写这些操作,检查返回值并正确处理任何错误。这将使您能够更多地了解当与摄像头的连接失败时发生了什么,并且可能会减少使用TBitmap的一些开销。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15888483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档