TidhttpServer |
缺席
|
hughes0201
一般會員 發表:12 回覆:10 積分:9 註冊:2008-11-04 發送簡訊給我 |
void __fastcall TForm1::httpServCommandGet(TIdPeerThread *AThread,
TIdHTTPRequestInfo *RequestInfo, TIdHTTPResponseInfo *ResponseInfo) { String pic=""; String request = RequestInfo->Document; if (request.IsDelimiter("/",1)) { if (request.Length() > 1) { char* buf = 0; char ch = '\\'; buf = request.c_str(); *(buf) = ch; pic = (String)buf; pic = "." pic; } } String response =""; ifstream fIn; fIn.open("lpr.html",ios::in); char InChar = 0; while (!fIn.eof()) { fIn.get(InChar); response = InChar; } fIn.close(); if (!pic.IsEmpty()) { picFile = new TFileStream(pic, fmOpenRead); ResponseInfo->ContentStream = picFile; } else ResponseInfo->ContentText=response; //delete file; } 小弟的程式如上,不太會用indy的tidhttpserver, 我知官方網站上有delphi的sample,只是我看不太懂~~~ 我只想做一個簡單的web server,讓使用者連結過來只是看一些圖片而已。 上面是主要的程式碼,picFile是個全域變數。 整個程式用來傳基本的html 內容和圖片, 我想請問在使用 TFileStream時, 我原本的想法是在 使用者 連接結束時,release記憶體 (picFile->free)。 可是會出錯。存取到非法的位址~~ 我想了一下,可能是cotentStream的內容還在使用中,而我delete了他所以出錯。 可是我是在disconnect 時delete的不是嗎? 不知有沒有tidhttpserver for borland c 的範例? 我找了很久~~沒有看到~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |