全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:4803
推到 Plurk!
推到 Facebook!

loadlibrary,freelibrary 同一個dll,非常多次,會出現error

尚未結案
seannjaj
一般會員


發表:2
回覆:2
積分:0
註冊:2002-12-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-19 16:44:13 IP:211.21.xxx.xxx 未訂閱
loadlibrary,freelibrary 同一個dll,非常多次,會出現runtime error 203    而dll ,是用bcb new ->dll wizard ,default ->use c++ ,use vcl    new 完後,有改變設定 Project->Options->Linker->Use dynamic RTL ,勾勾拿掉 再來就是Project->Options->packages->Build with runtime packages 一樣勾勾拿掉 然後直接build 出test.dll,dll 的部份就這樣    ap 部份我是拉個button 出來用 code 部份 void __fastcall TForm1::Button1Click(TObject *Sender) {  for(int i=0;i<3000;i ) { HINSTANCE DLLInst = LoadLibrary("test.dll"); FreeLibrary (DLLInst); DLLInst=NULL; }; } ap就只有這樣 run ap,我是打開windows 工作管理員,看ap memory 使用情形 每load free dll ,memory 就會一直成長,愈來愈多,出現runtime error 203 的時間不一定 但是同樣的ap,load vc 產生的dll 就不會這樣問題,我是用bcb 6 update 4 請問各位前輩們,有解嗎?我是bcb 初學者,謝謝
tylin123
初階會員


發表:33
回覆:53
積分:32
註冊:2003-05-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-31 08:41:20 IP:220.130.xxx.xxx 未訂閱
由程式中看起來似乎沒有錯,但是有一個問題是在迴圈中 LoadLibrary 與 FreeLibrary 之間沒有任何的處理程序或延滯,有可能 LoadLibrary 尚未完全載入就又被 FreeLibrary 釋放,因此有可能會產生釋放一個不存在的記憶體空間.
seannjaj
一般會員


發表:2
回覆:2
積分:0
註冊:2002-12-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-31 15:05:22 IP:203.73.xxx.xxx 未訂閱
引言: 由程式中看起來似乎沒有錯,但是有一個問題是在迴圈中 LoadLibrary 與 FreeLibrary 之間沒有任何的處理程序或延滯,有可能 LoadLibrary 尚未完全載入就又被 FreeLibrary 釋放,因此有可能會產生釋放一個不存在的記憶體空間.
void __fastcall TForm1::Button1Click(TObject *Sender) { for(int i=0;i<3000;i ) { HINSTANCE DLLInst = LoadLibrary("test.dll"); Sleep(1000); FreeLibrary (DLLInst); DLLInst=NULL; }; } sleep 1 s 還是一樣繼續吃memory 謝謝 sorry 再強調一次好了,vc build 出的dll 不會有此現像 發表人 - seannjaj 於 2005/08/31 15:18:54
系統時間:2024-03-29 4:39:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!