windows mobile 6.5 GDI 句柄限制个数是多少?

lajilao 2010-08-23 11:15:50
我有一个程序是使用了非常多的GDI资源(HDC,HBITMAP各200个左右吧大概),而且是系统启动就要一直开启的。再开点其他程序,其他程序就显示不正常了。物理内存还是有100多M的。所以就想问windows mobile 6.5 GDI 句柄个数最多是多少,这个限制是否能修改?怎样能看到当前GDI句柄使用了多少?windows mobile对GDI资源所占内存大小是否有限制?
感激!!!
...全文
175 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyanhui 2010-09-13
  • 打赏
  • 举报
回复
我也遇到这个问题,楼主是否有解决办法了
91program 2010-08-23
  • 打赏
  • 举报
回复
LZ,你可以试试在你所谓的200多个 GDI 句柄程序中, 继续申请 GDI 句柄, 看看是否能成功?

后面的,不用我再说了吧!
Ei 2010-08-23
  • 打赏
  • 举报
回复
这2个 值在WinCE下 无效吧?翻了下MSDN,没有说明。
另外 楼主这么知道是 GDI句柄限制造成?200多个 不算多啊。很有可能是其他原因。
GARY 2010-08-23
  • 打赏
  • 举报
回复
GARY 2010-08-23
  • 打赏
  • 举报
回复
LINUX好像有这个句柄的限制。
winCE中不知道有没有这个句柄的数量限制
不敢乱说
其实这个句柄的限制应该主要由内存决定。
可能是由某个表来存储
但是桌面Windows
好像注册表中有个GDIProcessHandleQuota
这个是GDI句柄的范围
还有一个USERProcessHandleQuota
是用户句柄的范围
大概是几百至上万个左右吧。
lajilao 2010-08-23
  • 打赏
  • 举报
回复
不过用CreateDIBSection,只是对进程有限制,再开一个实例又可以正常创建很多个。
而CreateCompatibleBitmap,好像是对整个系统限制的,只要一个进程用完了,其他的进程也都用不了了。
但CreateDIBSection打印太慢了。
CreateCompatibleBitmap用的是哪部分资源,是否可以改大?
点办?
lajilao 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lajilao 的回复:]

引用 4 楼 91program 的回复:http://topic.csdn.net/u/20100823/11/fa4aeea6-176c-49ae-a108-593544cc77ae.html#replyachor

LZ,你可以试试在你所谓的200多个 GDI 句柄程序中, 继续申请 GDI 句柄, 看看是否能成功?

后面的,不用我再说了吧!

CreateCompatibl……
[/Quote]上面写错了。。。。
应该是
CreateCompatibleBitmap(hdc, 1,1);
可以建1万多还正常
CreateCompatibleBitmap(hdc, 480,800);
可以建23个左右之后 GetLastError返回〖8〗-存储空间不足,无法处理此命令。
CreateCompatibleBitmap(hdc, 90,90);
可以建1173个左右之后 GetLastError返回〖8〗-存储空间不足,无法处理此命令。
看来是还是内存问题,可是物理内存还有100多M。是不是windows mobile限死了GDI内存大小,这个又是否可改呢?
用CreateDIBSection这个也一样

我的程序大概用了10个CreateCompatibleBitmap(hdc, 480,800)和200个CreateCompatibleBitmap(hdc, 90,90);


lajilao 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 91program 的回复:]http://topic.csdn.net/u/20100823/11/fa4aeea6-176c-49ae-a108-593544cc77ae.html#replyachor

LZ,你可以试试在你所谓的200多个 GDI 句柄程序中, 继续申请 GDI 句柄, 看看是否能成功?

后面的,不用我再说了吧!
[/Quote]
CreateCompatibleBitmap(hdc, 1,1);
可以建1万多还正常
CreateCompatibleBitmap(hdc, 480,800);
可以建23个左右之后 GetLastError返回〖8〗-存储空间不足,无法处理此命令。
CreateCompatibleBitmap(hdc, 480,800);
可以建1173个左右之后 GetLastError返回〖8〗-存储空间不足,无法处理此命令。
看来是还是内存问题,可是物理内存还有100多M。是不是windows mobile限死了GDI内存大小,这个又是否可改呢?
用CreateDIBSection这个也一样

19,524

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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