Krissi

半亩方塘一鉴开,天光云影共徘徊。

TC 中的 bioskey() 函数在 VC 中用什么代替? 铜牌收录

bioskey() 函数需要引用头文件 bios.h,这个头文件在 VC 中默认是没有的,将其引用 #include <bios.h> 删掉即可。

功能上,bioskey 可以实现以下三个功能:

  1. bioskey(0): 返回用户按键。
    如果返回值的低 8 位非 0,该值表示按键的 ASCII 码;
    如果返回值的低 8 位为 0,该值表示按键的键码。
    作为替代,VC 中可以使用 getch() 返回用户按键。对于功能键(如光标键),getch() 需要调用两次,第一次返回 0 或 0xE0,第二次返回键码。
    详见:http://msdn.microsoft.com/en-us/library/078sfkak(v=VS.80).aspx
  2. bioskey(1): 返回是否有按键发生。
    如果没有按键,返回 0;
    如果有按键,返回该按键值。(该按键仍然保留)
    作为替代,VC 中可以使用 kbhit() 返回是否有按键发生。
    详见:http://msdn.microsoft.com/en-us/library/58w7c94c(VS.80).aspx
  3. bioskey(2): 返回当前控制键的状态。

  4. 返回值共 16 位,分别表示:
    • 0 右 Shift 按下
    • 1 左 Shift 按下
    • 2 Ctrl 按下
    • 3 Alt 按下
    • 4 Scroll Lock 打开
    • 5 Num Lock 打开
    • 6 Caps Lock 打开
    • 7 Insert 打开
    • 8 左 Ctrl 按下
    • 9 左 Alt 按下
    • 10 右 Ctrl 按下
    • 11 右 Alt 按下
    • 12 Scroll Lock 按下
    • 13 Num Lock 按下
    • 14 Caps Lock 按下
    • 15 Sys Req 按下

作为替代,VC 中可以使用 GetKeyState 或 GetAsyncKeyState。

详见:http://msdn.microsoft.com/en-us/library/ms646301(v=vs.85).aspx

添加评论