關於ActiveX的記憶體問題 |
|
smallbridge
一般會員 發表:7 回覆:19 積分:5 註冊:2003-07-29 發送簡訊給我 |
|
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
|
smallbridge
一般會員 發表:7 回覆:19 積分:5 註冊:2003-07-29 發送簡訊給我 |
全部Source太多,不好贴,大致是这样的: 在 implementation 之上定义了一个全局变量 var FManager : TManager; 在ActiveX 的 constructor Create(AOwner: TComponent); override; 方法中 初始化 在 destructor Destroy; override; 方法中释放 后来跟踪发现,第一个页面未关闭的情况下, 第二个打开的页面创建的 FManager 和第一个在同一个内存区,会覆盖上一个页面创建的,当关闭任何页面的时候,FManager 被释放了。对于其他未关闭的页面FManager 为空了。 |
smallbridge
一般會員 發表:7 回覆:19 積分:5 註冊:2003-07-29 發送簡訊給我 |
|
JackTasy
初階會員 發表:22 回覆:97 積分:28 註冊:2002-06-06 發送簡訊給我 |
|
smallbridge
一般會員 發表:7 回覆:19 積分:5 註冊:2003-07-29 發送簡訊給我 |
|
JackTasy
初階會員 發表:22 回覆:97 積分:28 註冊:2002-06-06 發送簡訊給我 |
從你的描述看來,可能ActiveX在Allocate Memory Instance時,也是根據 IE Session ID 來區別的吧。因為你說再同一個頁面裡面,那表示多個 ActiveX Object 都是同ㄧ個 Session ID的。
若真如此,可能在程式設計上,就要思考自己建立一個 rule 來避開,並達成你想要的樣子了吧。 ===================引 用 文 章=================== 这可能源于对IE来说,同一个主页面内打开的所有子页面都属于主IE窗口。其ActiveX全局变量是共享的。
------
JackTasy |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |