首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

说说Windows嵌套窗口数量限制

嵌套窗口不能太多

在古老的年代,Windows系统并不会限制应用程序的嵌套窗口的数量。如果你真的想要创建200个嵌套窗口,那也是可以的,毕竟这是你自己的决定,我们无权多加干涉。许多应用程序涉及窗口的操作都是嵌套式的,但是有个地方需要注意的是,你需要确保程序的栈足够大能容纳得下这样多的嵌套窗口,否则会造成栈溢出(stack overflow)。

引入一种限制措施

但是到了Windows NT的时候,窗口管理器从应用程序的栈中移除(首先是被移动到了单独的进程,后来被移到了内核空间中)。这个时候,操作系统就需要注意到那些创建了很多嵌套窗口的应用程序了,因为一旦应用程序创建了太多嵌套窗口,就有可能导致栈溢出。

在Windows NT时期,嵌套窗口被限制为100个。到了Windows XP时期,这个限制被进一步降到了50个,因为我们发现在调用某些内部函数时,如果嵌套窗口超过75个,则会产生栈溢出,所以限制嵌套窗口为50个,可以释放更多的栈空间以避免可能出现的栈溢出。

声明一下

我并不是这块功能的实际开发者,我只是从代码提交日志里看到这个的,如果信息不准确,也是很有可能的。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。

本文来自:《What is the window nesting limit?》

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200831A0OV4000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券