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

32位元 無法使用 _bios_keybrd( ) 嗎

尚未結案
quickcccc
一般會員


發表:3
回覆:15
積分:3
註冊:2005-08-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-04 15:54:34 IP:203.73.xxx.xxx 未訂閱
#include  void main(void) { int key = _bios_keybrd(_KEYBRD_READ) ; } 這個 用 Dos 下 16 位元的 Microsoft_C / Turbo C 3.0 都可以編譯成功 而且可執行 但是使用 32 位元的 Borland C 5.5 編譯 會出現 函式庫找不到 _bios_keybrd() (只要是 _bios_ 開頭 都是找不到 ) 用 Dev c 也不支援 _bios_keybrd() getche(), getch()... 等這些 c 指令 都需按 enter 才會繼續下一步 不符合我需要 我需要 "不會停下來" 的 _bios_keybrd() 我猜 是不是 得用 c 來寫 可是我不會 c 如果方便的朋友 可否告知 c 寫法 ,怎樣嵌進我的 c 程式 或 其他解決方法 [註] 我使用 Borland C 5.5 視窗編譯器 ///////////////////////////////////// 我想用 _bios_keybrd() 的目的如下 void main(void) { const ESC = 27 ; int key ; long loops = 0; do{ key = _bios_keybrd(_KEYBRD_READ) ; if (key==ESC){break;} /* 事實上 key值 還得處理一下才能使用 但為了簡化式子 假設傳回的 key 值 就是 ASCII 值 ,也不管是否有 Ctrl , Alt */ loops ; printf(" counter = %ld \n", loops ); }while(1); } 程式會一直 印出 1,2,3,4,5,6,7,8,9................................ 直到按 ESC 鍵 就跳出 迴圈 do..while ///////////////////////////////////// 在此先謝謝 !!
fffhghgjh
一般會員


發表:2
回覆:33
積分:17
註冊:2004-12-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-04 19:06:00 IP:61.222.xxx.xxx 未訂閱
你可以先利用int _kbhit( void ); 去檢查有沒有按鍵按下 然後再去利用getche()去取得按下的鍵
quickcccc
一般會員


發表:3
回覆:15
積分:3
註冊:2005-08-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-04 19:53:17 IP:203.73.xxx.xxx 未訂閱
真感謝 成功了 這個網站 我看了一下 答覆率很高 我已經把它問題資料庫 下載下來了 應該很有幫助
系統時間:2024-05-18 6:37:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!