[問題] BCB呼叫DLL執行,畫面會反白

看板C_and_CPP作者 (楓霧)時間15年前 (2010/04/17 07:21), 編輯推噓1(105)
留言6則, 5人參與, 最新討論串1/2 (看更多)
各位好 我的BCB程式裡呼叫了一個DLL執行 內容如下: int (*maxdg)(double *,const int,const int,char *,double,double,double,int,double); HINSTANCE hInst = LoadLibrary(pathx.c_str()); (FARPROC &)maxdg = GetProcAddress(hInst,"maxdg"); check = maxdg(pudataarray,row,col,path,Vlimit,Ilimit,PF,PFtype,Ibase); FreeLibrary(hInst); DLL是由VC++6撰寫的,裡面大約跑3000次的複數矩陣運算 所以執行時間大約是30秒到2分鐘 這時候我的主畫面滑鼠會變漏斗形狀、有些地方則會變白色的 因為我的迴圈是寫在DLL裡,所以在BCB中 用Application->ProcessMessages(),好像沒有用 請問怎樣才能解決畫面變白的問題,感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.207.32

04/17 15:28, , 1F
thread
04/17 15:28, 1F

04/17 15:37, , 2F
請問是寫在BCB中 還是DLL裡面
04/17 15:37, 2F

04/17 15:38, , 3F
準確的說 你要在 BCB 開另一個 Thread 去做運算
04/17 15:38, 3F

04/17 15:39, , 4F
單一 Thread 在運算很忙碌的時候就沒辦法顧到視窗介面了
04/17 15:39, 4F

04/17 15:48, , 5F
另外開一個thread去跑DLL的程式
04/17 15:48, 5F

04/18 06:16, , 6F
LoadLibrary和FreeLibrary都需要花IO時間
04/18 06:16, 6F
文章代碼(AID): #1BoM6FFB (C_and_CPP)
文章代碼(AID): #1BoM6FFB (C_and_CPP)