IE加载OCX插件崩溃原因之栈溢出问题

博客讲述了在将大型dll库集成到IE OCX插件时遇到的栈溢出问题,即使调整了VS编译时的栈保留大小,IE仍会崩溃。文章提到IE对栈内存的限制,并列举了不同版本IE与其他浏览器的栈内存大小,建议通过优化内存分配策略以解决此问题。
摘要由CSDN通过智能技术生成

最近遇到一个问题,一个部门的同事提供的dll库使用栈内存较大,我这边使用VS2013控制台程序测试时出现崩溃。
崩溃原因是栈内存不够用导致,于是我将vs的栈保留大小设置为100M,然后就可以了。

现在需要把他的dll库集成进IE使用的OCX插件,发现IE在使用到这个库函数的时候崩溃。
实际上OCX编译时,我也将栈保留大小设置为了100M,但是IE不吃这一套。

我写了个插件demo,发现我申请1.8M左右栈内存的时候IE就会出现崩溃。。

char c[1024*1024*2]; // 2M都申请不到,IE11下测试,new堆上内存将近可以申请1G也不会崩

暂时,没找到能改IE的栈预留大小的方法。
当然,能找到也不要去用,栈上内存用将近100M,应该考虑修改程序的内存申请方式为堆上申请。。


找到一篇关于浏览器栈内存的文章:
http://codingdict.com/questions/9546

测试能申请多少栈内存:


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值