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

Codegear 2007 編譯Assert(Event <> NULL);報錯?

答題得分者是:AndrewK
mitchellhu
一般會員


發表:23
回覆:53
積分:15
註冊:2007-06-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-07-15 16:09:05 IP:59.125.xxx.xxx 訂閱
在網路上找到一篇有關Thread的文章(http://delphi.about.com/gi/dynamic/offsite.htm?zi=1/XJ/Ya&sdn=delphi&cdn=compute&tm=7&gps=98_343_1020_543&f=11&su=p284.8.150.ip_&tt=14&bt=1&bts=0&zu=http://www.midnightbeach.com/jon/pubs/MsgWaits/MsgWaits.html),有附code,所以就下載來研讀。
但其中一段程式如下:

[code delphi]
constructor TStopStartThread.Create;
begin
Event := CreateEvent(Nil, True, False, Nil);
// API call is smaller and simpler than Delphi wrapper
Assert(Event <> NULL);
Waiting := False;
Aborted := False;
inherited Create(True); // Create a suspended thread
end; // TStopStartThread.Create

[/code]

其中 Assert(Event <> NULL);段
Codegear 2007 在編譯時報錯 [DCC Error] SynchedThreads.pas(188): E2003 Undeclared identifier: 'NULL'
我實在想不出來錯誤的原因?是轉型的問題嗎?或是編譯器的除錯選項要修改?windows unit 有宣告到,但是為什麼會認不出來?
請教高手提示一下,謝謝


AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-07-16 11:20:58 IP:203.67.xxx.xxx 訂閱
我試的結果是 
uses Variants
編譯通過,可執行

請教一下,這個程式是要展示執行緒什麼功能呢??
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
mitchellhu
一般會員


發表:23
回覆:53
積分:15
註冊:2007-06-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-07-16 18:14:07 IP:59.125.xxx.xxx 訂閱
感謝andrewx的回覆,use variants unit後,程式可以執行。
有關本篇文章係英文的,所以當下我尚未有能完全明白作者訴求是什麼。不過基本上他是提出許多Delphi Thread 的重要觀念及說明。另他主要有感於delphi thread 未能如 windows thread API這樣易於上手的介面,而自已針對了delphi thread 的運用,以比較安全及簡明的方式寫出示範碼,並逐一說明。個人因剛才開始研讀thread,許多觀念待努力澄清及學習(一般教材實在無法參用),期望大家指導一些方向及提供可參考的資訊。
感謝各位。
系統時間:2024-07-02 0:39:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!