天天看点

说说Windows嵌套窗口数量限制

嵌套窗口不能太多

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

引入一种限制措施

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

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

声明一下

最后

继续阅读