線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:628
推到 Plurk!
推到 Facebook!

請問這段程式裡面的delete寫法會不會出什麼問題?

尚未結案
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-29 16:07:23 IP:163.28.xxx.xxx 未訂閱
程式裡面會每秒呼叫ReportData一次. 我程式執行起來看起來是正常的,但執行久了,就變的怪怪的. 原本1秒會做完的事,會變成3秒才做完一次. xxx.h
   ......
   ......
   ......
public:
     _di_IToClient iRC;
     _di_IToClient Get_iRC();    __property _di_IToClient RC={read=Get_iRC};
.cpp
void CA::ReportData(AnsiString EData)
{
    bool redo = false;
    do {
        try {
            RC->RD(EData);
            delete RC;
            redo = false;
        } catch (...) {
            Form1->Memo1->Lines->Add("[Error] Redo ReportEData_PE()...");
            redo = true;
        }
    } while(redo);
}    _di_IToClient CA::Get_iRC() {
    if(!iRC)
        Form1->HTTPRIO2->QueryInterface(iRC);
    return iRC;
}
請指教,謝謝.
hauhan
一般會員


發表:11
回覆:9
積分:4
註冊:2004-07-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-01 17:54:41 IP:211.72.xxx.xxx 未訂閱
QueryInterface...看起來好像是COM的東西. COM在調用的介面使用完畢刪除前要呼叫Release()... 他的參考值才會減一(因為QueryInterface會加一) 不確定是否有 RC->Release() 的函式,如果沒有的話 就建議不要每次使用ReportData都QueryInterface一次然後又釋放, 把RC記下來最後在釋放看看.... PS.我沒用過...只是說說我的想法而已
系統時間:2024-06-26 13:20:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!