pb使用advanced gui界面花屏的问题

shisongjie001 2019-01-28 02:36:54
我程序框架用了advanced gui,早先的时候,偶尔有用户反映会有花屏的问题。我最初一直认为是内存使用过多,或者泄漏,后来也排除这两个问题了,还对内存DLL使用做了优化,也监控了结果,证明是没有泄露,但是现在偶尔还是有花屏情况出现,花屏的时候内存也不是很高。现在,我的推测是,我的程序跟DLL有交互,跟HTTP有交互,在频繁跟外部资源有交互的情况下,同时又存在界面不断变化,gui也在不断重绘的情况下,各个进程不同步了,造成界面重绘出了问题。我想请教各位的是:
1、是不是重绘出了问题
2、有什么办法能避免这类问题出现
...全文
379 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 1 楼 PackChen 的回复:
确实是内存泄漏和重绘bug,那个框架来自kodiga早期的作品,主要是那个canvas.pbd有bug,原来实现的时候,是用pbni重载了关于paint等一系列绘图函数,里面的重定向各个paint消息中,源代码在getdc之后并没有释放,kodiga原来有那个canvas.pbx的代码,不过后来找不到了,但是你可以自己做一个替换掉,canvas代码主要是重载各个paint,包括ncpaint,nccalcsize等,在没有任何代码的时候,不绘制背景并且把消息定向,很简单的




这个具体要怎么实现呢?
PackChen 2019-03-30
  • 打赏
  • 举报
回复
引用 2 楼 zhaoshuaihui1990 的回复:
[quote=引用 1 楼 PackChen 的回复:]
确实是内存泄漏和重绘bug,那个框架来自kodiga早期的作品,主要是那个canvas.pbd有bug,原来实现的时候,是用pbni重载了关于paint等一系列绘图函数,里面的重定向各个paint消息中,源代码在getdc之后并没有释放,kodiga原来有那个canvas.pbx的代码,不过后来找不到了,但是你可以自己做一个替换掉,canvas代码主要是重载各个paint,包括ncpaint,nccalcsize等,在没有任何代码的时候,不绘制背景并且把消息定向,很简单的




这个具体要怎么实现呢?[/quote]
vc++自己写pbni替换啊
PackChen 2019-03-24
  • 打赏
  • 举报
回复
确实是内存泄漏和重绘bug,那个框架来自kodiga早期的作品,主要是那个canvas.pbd有bug,原来实现的时候,是用pbni重载了关于paint等一系列绘图函数,里面的重定向各个paint消息中,源代码在getdc之后并没有释放,kodiga原来有那个canvas.pbx的代码,不过后来找不到了,但是你可以自己做一个替换掉,canvas代码主要是重载各个paint,包括ncpaint,nccalcsize等,在没有任何代码的时候,不绘制背景并且把消息定向,很简单的

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧