史前生活 bbc:当打开图片比较多的页面时.弹出窗口不断提示Stack overflow at line:0,请问是什么问题,怎么解决

来源:百度文库 编辑:神马品牌网 时间:2024/05/08 19:41:28

缓冲溢出问题
把project设置里的堆栈加大就可以了,默认是1M,你可以加大到10M试试.
project->setting->link:
在category里选择output,在stack的Reserve里输入0x10000000试试

每当创建一个线程时,系统就会为线程的堆栈(每个线程有它自己的堆栈)保留一个堆栈空间区域,并将一些物理存储器提交给这个已保留的区域。按照默认设置,系统保留1MB的地址空间并提交两个页面的内存。但是,这些默认值是可以修改的,方法是在你链接应用程序时设定Microsoft的链接程序的/STACK选项:/STACK:reserve[,commit]
当创建一个线程的堆栈时,系统将会保留一个链接程序的/STACK开关指明的地址空间区域。但是,当调用CreateThread或_beginthreadex函数时,可以重载原先提交的内存数量。这两个函数都有一个参数,可以用来重载原先提交给堆栈的地址空间的内存数量。如果设定这个参数为0,那么系统将使用/STACK开关指明的已提交的堆栈大小值。后面将假定我们使用默认的堆栈大小值,即1MB的保留区域,每次提交一个页面的内存。