检查MS-DOS(C/C++)中的键是否关闭
是的,我的意思是真正的MS-DOS,而不是
Windows的cmd.exe shell控制台.
有没有办法检查MS-DOS中的键是否关闭,类似于WinAPI中的GetAsyncKeyState()函数? 目前我使用的是kbhit()和getch(),但它真的很慢,第一个字符之后有延迟,同时不允许多个键等. 我正在使用Turbo C 3.1.谁能帮忙? (顺便说一下,不要问为什么我在这样一个古老的系统上编码我的游戏)
你为什么在su编码你的游戏只是开玩笑!
在MS-DOS中,“API”功能实现为中断服务器.在x86汇编语言中,您可以使用 我不知道Turbo C如何实现中断,因为我参与了编程,但我知道它允许你执行它们. Google的语法,或检查您的Turbo C文档. 知道这些中断将会让您在寻找解决方案时获得90%的收益. Ralf Brown compiled and published a famous list of DOS and BIOS interrupt codes.他们也应该在任何关于DOS编程的书中提供 – 如果你认真对待编程,你一定要考虑把手放在一起.亚马逊上使用的副本只能让你回来几块钱.大多数人认为现在这些毫无价值. Here是列出可用于DOS中断21h的子功能的站点.与您的使用相关的是01,06,07和08.这些基本上是C标准库函数像getch将要做的事情.我觉得很难想象,但是我听到有程序员回头说,直接调用DOS中断的速度更快.我问的原因是,我无法想象运行时库实现者本来会如此愚蠢的提供不必要的缓慢的实现.但也许他们是. 如果DOS中断对你来说还是太慢,最后一个方法就是直接使用BIOS中断.这可能会使速度有明显的差异,因为您绕过每个可能的抽象层.但它确实使您的程序显着更少的可移植性,这是操作系统像DOS提供这些更高级别的函数调用开始的原因.再次检查Ralf Brown列出的与您使用相关的中断.例如 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – 尝试使用win xp cmd与设备通信
- 批处理文件 – 从批处理在新窗口中运行批处理文件
- 为什么RMI注册表忽略了java.rmi.server.codebase
- windows-server-2008 – 有没有办法从命令行/ Po
- 命令行 – 在For循环中退出 – Windows命令处理器
- 带有Windows身份验证的WebAPI返回401未授权
- 为仿真输入设备编写Windows驱动程序
- Windows(Services for Unix)NFS客户端“足够好”
- windows-phone-7 – Windows Phone 7设置
- windows-server-2012 – Receiver将TCP窗口大小限