一个DLL,在exe调用正常,换到OCX调用就内存溢出

经过一个下午的调试,

发现OCX是的栈大小限制导致的,

OCX中某个函数过程,申请了一个大容量的栈内存,

调用时虽没有出现溢出,

但是这个大容量内存已经破坏了被加载的DLL里面的内存空间数据,

导致运行到DLL中某个位置就莫名其妙的崩溃。

原因暂时不确定,

但是可以肯定是OCX在加载到IE运行时,

函数所能使用的栈空间容量比exe中的函数要小很多。

因为,同样的代码,在exe中调用就没问题,换到OCX就有问题。

印象中貌似有看过一篇文章说微软为了限制ActiveX控件的权限,将栈空间限制成几百K了。

posted on 2010-06-25 20:12  峋山隐修会  阅读(474)  评论(0编辑  收藏  举报

导航