IE載入OCX外掛程式崩潰原因之棧溢位問題

2021-10-25 18:29:28 字數 1117 閱讀 5973

最近遇到乙個問題,乙個部門的同事提供的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,應該考慮修改程式的記憶體申請方式為堆上申請。。

找到一篇關於瀏覽器棧記憶體的文章:

測試能申請多少棧記憶體:

var i=0;

function

inc(

)inc()

;

ie瀏覽器

•ie6:1130

•ie7:2553

•ie8:1475

•ie9:20678

•ie10:20677

火狐瀏覽器

•3.6:3000

•4.0:9015

•5.0:9015

•6.0:9015

•7.0:65533

•8b3:63485

•17:50762

•18:52596

•19:52458

•42:281810

谷歌瀏覽器

•14:26177

•15:26168

•16:26166

•25:25090

•47:20878

•51:41753

蘋果瀏覽器

•4:52426

•5:65534

•9:63444

opera

•10.10:9999

•10.62:32631

•11:32631

•12:32631

ocx 載入 頁面卡死

最近遇到的問題,頁面需要用到控制項,記錄下查詢問題的歷程,方便後期檢視!最終結果,問題根本原因未找出!目前解決辦法 在專案中根頁面中初始化也就是下貼 中頁面呼叫的時,在定義乙個div容器,ts中獲取容器的width,heigth,top,left 針對object做絕對定位。使用的方法是 其中cla...

chrome 瀏覽器呼叫 ocx 外掛程式

原文 ie 上使用 ocx 外掛程式網上已經有很多資料說明,這裡就不重複了,那如何在 chrome 瀏覽器上使用 ocx 外掛程式呢?1 編寫 ocx 外掛程式,增加測試 html 頁面。普通呼叫 html view plain copy object chrome 呼叫 html view pla...

載入外掛程式(三)

接著 二 重新把vlc entry core 寫出來 int vlc entry core vlc set cb vlc set,void opaque 注意 va arg ap,module t submodule 這句,ap正好對應第四個引數,它是 module,因此module被建立出來了。後...