程式沒有任何訊息消失了!! |
答題得分者是:andychang1690
|
ChrisChen
一般會員 發表:4 回覆:11 積分:3 註冊:2004-04-24 發送簡訊給我 |
|
likush
高階會員 發表:5 回覆:235 積分:103 註冊:2002-10-08 發送簡訊給我 |
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
|
ChrisChen
一般會員 發表:4 回覆:11 積分:3 註冊:2004-04-24 發送簡訊給我 |
|
ChrisChen
一般會員 發表:4 回覆:11 積分:3 註冊:2004-04-24 發送簡訊給我 |
引言: ChrisChen: 可否檢查程式那些地方用到Terminate或Close指令! 尤其你用到多個Thread。 請參考! Andy Chang您好,程式唯一有Close是在主Form的"結束"鈕;另外程式本身原持斷的寫入Log至檔案,在程式啟動及正常結束及每個Thread Executoe進入及離開也都會寫Log,而程式消失後查看Log檔,就像被人由工作管理員中直接結束了一樣...因為Log顯示好幾個Thread都有啟動記錄,但沒有離開記錄。 但在程式正常時記錄中會顯示每個Thread的啟動及結束.... |
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
引言:引言: ChrisChen: 可否檢查程式那些地方用到Terminate或Close指令! 尤其你用到多個Thread。 請參考! Andy Chang您好,程式唯一有Close是在主Form的"結束"鈕;另外程式本身原持斷的寫入Log至檔案,在程式啟動及正常結束及每個Thread Executoe進入及離開也都會寫Log,而程式消失後查看Log檔,就像被人由工作管理員中直接結束了一樣...因為Log顯示好幾個Thread都有啟動記錄,但沒有離開記錄。 但在程式正常時記錄中會顯示每個Thread的啟動及結束.... >>< face="Verdana, Arial, Helvetica"> ChrisChen:這類問題是最討厭的,建議你: 一、將程式上傳至求助區讓各位大大們幫忙檢查。 http://delphi.ktop.com.tw/post.asp?method=Topic&FORUM_ID=97&CAT_ID=31&Forum_Title=%B7%7C%AD%FB%A8D%A7U%B5%7B%A6%A1%C0%C9%AE%D7%A4W%B6%C7%B0%CF 二、先Mark一些無相關的地方測試一下如產生Log檔。 或每個Tread各自產生各自的Log檔測試一下。 請參考! Andy Chang
------
Andy Chang |
ChrisChen
一般會員 發表:4 回覆:11 積分:3 註冊:2004-04-24 發送簡訊給我 |
打擾各位先進了!真不好意思!
這個問題分析了一個晚上,終於找到問題所在了! 問題出在其中有一個Thread在執行某個Method時,在Method中有宣告一塊128K的Char Array,原本以為應該夠用了,結果沒想到對方送過來的資料大於128K,因此在複製資料進char Array時(memcopy),就發生意外了,在將該記憶體改成動態依資料大小來配置時問題就排除了! 不過在這裏有一點很奇怪,就是如果在IDE環境下上述的操作會出現記憶體存取錯誤,可是如果直接執行執行檔時程式會直接就消失了!這一點我還是無法解釋,是否有請先進開釋.... < class="code">
<< 兇手 >>
function TEAIConnector.getMsgData_EXT(pMessageObj:pChar): string;
var
mBuf:array[1..128*1024] of char;
mStr:string;
begin
FillChar(mBuf,128*1024,0);
MQ_getMsgData_EXT(pMessageObj,mBuf); // <-- 兇手,取資料時大於128K了(memcopy)
mStr := mBuf; // <-- 在IDE環境會在這一行一執行後出現記憶體存取錯誤
SetLength(mStr,Length(mBuf));
Result :=mStr;
end;
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
|
ChrisChen
一般會員 發表:4 回覆:11 積分:3 註冊:2004-04-24 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |