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

winapi sleep 如何宣告使用

答題得分者是:eaglewolf
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-20 15:56:10 IP:220.141.xxx.xxx 訂閱
winapi sleep 應如何宣告使用,實在試不出來, 麻煩教一下, 謝謝! <textarea cols="60" rows="10" class="delphi" name="code"> Program Test; function sleep(dwMilliseconds : longint); extenal 'sleep@KERNEL32.dll stdcall'; begin sleep(500); End. </textarea> win32.hlp 宣告如下: VOID Sleep( DWORD dwMilliseconds // sleep time in milliseconds ); vb 宣告如下: Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) windows.pas 宣告如下: procedure Sleep; external kernel32 name 'Sleep'; procedure Sleep(dwMilliseconds: DWORD); stdcall;
------
努力會更接近成功
pedro
尊榮會員


發表:152
回覆:1177
積分:865
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-20 16:12:50 IP:60.248.xxx.xxx 未訂閱
直接uses SysUtils
它已幫你宣告
{$IFDEF MSWINDOWS}
procedure Sleep; external kernel32 name 'Sleep'; stdcall;
{$ENDIF}

在程式中使用:sleep(100)
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-24 10:25:30 IP:122.127.xxx.xxx 訂閱
我是用ramob pascal script 不能直接引用sysutil
我的問題出在宣告不成功,
function
sleep(dwMilliseconds : longint); extenal 'sleep@KERNEL32.dll stdcall';
------
努力會更接近成功
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-27 09:04:45 IP:211.75.xxx.xxx 訂閱
參考Win32 API原本的宣告
VOID Sleep(DWORD dwMilliseconds); //DWORD means 32-bit unsigned integer.

所以大大的宣告應該是:
procedure sleep(dwMilliseconds : longword); external 'sleep@KERNEL32.dll stdcall';
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
編輯記錄
eaglewolf 重新編輯於 2007-08-27 09:13:54, 註解 將cardinal改成longword‧
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-08-30 09:55:38 IP:211.75.xxx.xxx 訂閱
剛看了RemObject PASCAL S cript 的網頁
http://remobjects.com/page.asp?id={9A30A672-62C8-4131-BA89-EEBBE7E302E6}

提供的 type 是:
Byte, Shortint, Char, Word, SmallInt, Cardinal, Longint, Integer, String, Real, Double, Single, Extended, Boolean, Array, Record, Enumerations, Variant, IUnknown, IDispatch (dynamic invoke)

所以試看看
procedure sleep(dwMilliseconds : Cardinal) external 'sleep@kernerl32.dll stdcall';
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-08-30 14:35:50 IP:211.75.xxx.xxx 訂閱
如下宣告:
procedure Sleep(dwMilliseconds :Longword); external 'Sleep@kernel32 stdcall';
請注意 引號內的Sleep 是Case-Sensitive的

另, type 使用 Longword 或 Cardinal 宣告都可以
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-08-30 15:17:48 IP:220.141.xxx.xxx 訂閱
可以了, 實在太謝謝您了!
可以冒昧請教您, 把它當function是我的錯誤, 若以學習的態度言, 應該罰寫1000次的,
但是類似的問題我實在問太多了, 許多版主當我是VB的user來鬧場的,
我不過是覺得pascal有Script也蠻好的, 就像Asp, Windows Script Host(總是有接觸,很難很難用)
當我在研究RemObject PASCAL Script 一方面沒有help可看, news也無什可參考之處, svc也看不出所以然
(免費給你用就不錯了,不好用你幹麻一直測)其實也還不錯用, 要是那位大大開發http server支援 PASCAL Script
講太多了, 想請問大大如何找到答案的, 這樣ktop的朋友們也不會把我當白目的提問者, 求求你, 告訴我如何找答案,
再次謝謝你, 至少你沒有把我當怪物看待.


===================引 用 eaglewolf 文 章===================
如下宣告:
procedure Sleep(dwMilliseconds :Longword); external 'Sleep@kernel32 stdcall';
請注意引號內的Sleep是Case-Sensitive的

另, type 使用 Longword 或 Cardinal 宣告都可以
------
努力會更接近成功
編輯記錄
pceyes 重新編輯於 2007-08-30 15:20:23, 註解 無‧
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-08-31 00:06:08 IP:220.132.xxx.xxx 訂閱
大大言重了
主要還是從Delphi 的 Windows SDK Help 或是 Windows.Pas去找
會先在delphi 的ide 環境 宣告並嘗試執行
再轉成 RemObject PS 的 宣告方式

===================引 用 pceyes 文 章===================
可以了, 實在太謝謝您了!
可以冒昧請教您, 把它當function是我的錯誤, 若以學習的態度言, 應該罰寫1000次的,
但是類似的問題我實在問太多了, 許多版主當我是VB的user來鬧場的,
我不過是覺得pascal有Script也蠻好的, 就像Asp, Windows Script Host(總是有接觸,很難很難用)
當我在研究RemObject PASCAL Script 一方面沒有help可看, news也無什可參考之處, svc也看不出所以然
(免費給你用就不錯了,不好用你幹麻一直測)其實也還不錯用, 要是那位大大開發http server支援 PASCAL Script
講太多了, 想請問大大如何找到答案的, 這樣ktop的朋友們也不會把我當白目的提問者, 求求你, 告訴我如何找答案,
再次謝謝你, 至少你沒有把我當怪物看待.


===================引 用 eaglewolf 文 章===================
如下宣告:
procedure Sleep(dwMilliseconds :Longword); external 'Sleep@kernel32 stdcall';
請注意引號內的Sleep是Case-Sensitive的

另, type 使用 Longword 或 Cardinal 宣告都可以
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
系統時間:2017-12-12 5:02:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!