数值分析考得如此简单,以至于感觉白复习了。
晚上,因为一些原因我很希望串口的数据能及时dump到硬盘上,可恶的是手头的串口调试工具都不怎么顺手,我气愤了,所以决定写一个题为《不就是个串口嘛!》的程序。很多功能还没有来得及加上,以后再完善,先用起来再说。
网上的一些vb6高手似乎很懒,实现了控制台、读取、写入、颜色等等功能,唯独没有加上这个关键的kbhit()函数。那怎么能行呢!所以这篇文章特别dump了c语言的库函数:
Public Function kbHit() As Boolean
' Dim m_StdInput As Long
' m_StdInput = CreateFile("CONIN$", _
' GENERIC_READ Or GENERIC_WRITE, _
' FILE_SHARE_READ Or FILE_SHARE_WRITE, _
' 0, _
' OPEN_EXISTING, _
' 0, _
' 0)
' 或者,m_StdInput = GetStdHandle(STD_INPUT_HANDLE)
Dim nRet As Long
Dim CharsRead As Long
Dim nEvents As Long
Dim Events() As INPUT_KEY_EVENT_RECORD
nRet = GetNumberOfConsoleInputEvents(m_StdInput, nEvents)
If nRet = 0 Or nEvents = 0 Then
kbHit = False
Exit Function
End If
ReDim Events(0 To nEvents - 1)
nRet = PeekConsoleInput(m_StdInput, Events(0), nEvents, CharsRead)
If nRet And CharsRead <> 0 And CharsRead <= nEvents Then
Dim i As Long
For i = 0 To nEvents - 1
If Events(i).EventType = KEY_EVENT And _
Events(i).bKeyDown Then
' [tc]Caution: Events(i).AsciiChar is ignored
' [tc]Caution: _getextendedkeycode is ignored
kbHit = True
Exit Function
End If
Next
End If
kbHit = False
End Function
相关定义我就不贴了,网上满大街都是。这个程序中间我注有两个Caution,如果检测到的按键并不是键盘上的按键,理论上kbhit应该返回False,但是这段代码不是这样。所以这个函数其实是不完美的,为什么我不去实现_getextendedkeycode呢?因为我比较懒……
Comments 26
你还在坚守 vb6 啊……快点换成些好跨平台的东西吧,我应为换用 linux 损失了大量 opascal 代码(虽然有仿制品)。
所以现在特别在乎语言的移植潜力。
Reply
Posted 25 十 2008 at 20:54 ¶是么,你分明只在乎GUI部分能不能移植吧。我的话有些程序没有移植的可能性,所以不在乎。
Reply
Posted 27 十 2008 at 13:30 ¶有些软件直接使用了 windows api,没办法了……
不过我编的 delphi 软件多数可以用 wine 较完美运行。
Reply
Posted 27 十 2008 at 14:57 ¶对呀,WindowsAPI不也照样Wine嘛。
Reply
Posted 27 十 2008 at 19:35 ¶第一行說的是用 opascal 的同類產品重新編譯的可能性。
第二行表示 wine 的兼容性比較高。
Reply
Posted 27 十 2008 at 22:01 ¶原来不是连贯的意思,那你也不打上一条分割线作为区分。
===== 示范用的分割线 =====
那你干脆就继续delphi不就好了。
Reply
Posted 28 十 2008 at 20:04 ¶为什么要打分割线,连贯的意思写在一行里,用逗号隔开不就行了。
关键 delphi 没有免费的版本啊,不像 C# 有个 express 版。c# 是原来 borland 亡命过去的 delphi 主创者搞的,我简单式了一下,风格极为类似,加上 linux 有 mono,所以 delphi 基本上被我淘汰了,另外还有 python,delphi 基本没有出场的机会了。
Reply
Posted 29 十 2008 at 10:13 ¶问题在于你的CSS中段落分得比较开,所以分割明显。
设计人员是同一帮?不太可能吧。
Reply
Posted 30 十 2008 at 21:26 ¶你这万年不变的主题可以换换了吧……
我这 v7 要不要,可以帮你定制一些内容。
当然不是同一帮,只有一个:Anders Hejlsberg。
Reply
Posted 30 十 2008 at 22:21 ¶是么?这个丹麦人做过Delphi 6?
Reply
Posted 01 十一 2008 at 11:37 ¶tp delphi 基本都是这人的,大牛来的。
Reply
Posted 01 十一 2008 at 12:03 ¶不是说Delphi 4的时候已经被挖走了吗。
Reply
Posted 02 十一 2008 at 10:07 ¶当时 d5 基本已经做好了,所以 d5 也是史上有名的成功 ide。
Reply
Posted 02 十一 2008 at 11:54 ¶既然这么在乎跨平台,又为什么会对Java的IO看不过去呢?
Reply
Posted 02 十一 2008 at 22:00 ¶难道你忘了,我们以前不是所谓的性能至上主义者嘛?
其实主要是对 java 有成见,所以借题发挥了。
Reply
Posted 02 十一 2008 at 23:18 ¶MMzX有过吗?一直是界面至上的吧。
我对Java的成见倒是说不上理由,仅仅是心理上排斥。
Reply
Posted 04 十一 2008 at 23:29 ¶切,相比一下我们以前用的 ide。
zx:delphi tc:vb
明显我的比较有效率。
而我现在搞的实时 3d 绘图也是很效率至上的东西。
因为 java 的效率一直低,所以心理上排斥。
我那不叫界面至上,只是与生俱来的美术细胞告诉我要把图形界面弄得美观一点。
Reply
Posted 05 十一 2008 at 13:25 ¶性能关键的代码我有用DLL做哦。
而且提及性能至上,首先应该想到汇编吧,怎么会想到IDE。
Reply
Posted 06 十一 2008 at 11:50 ¶那样开发效率就降下来了呀,我关注的是整体性效率。
哈哈,买了扫描仪。
Reply
Posted 06 十一 2008 at 22:51 ¶这么说来,记得Delphi也可以内联汇编的,不知道优化做得好不好。
Reply
Posted 07 十一 2008 at 12:31 ¶能,没试过,不符合我的美学。
Reply
Posted 08 十一 2008 at 11:24 ¶最近完全抛弃了MFC,
C#, asp.net, windows sharepoint server中。。。。。。
Reply
Posted 08 十一 2008 at 19:23 ¶To longinus:
所以你是坚决反对只能运行在特定机器上的代码咯?这就跟我以及whans划清了界限。
To Mazong1123:
因为一些原因用了一下C++.net,发现做这个东西的人有病,所以还是看一下C#。
Reply
mazong1123 reply on 十一月 16th, 2008 16:40:
C++.net我就用过一次
现在全面C#,我发现我堕落了,不想用标准C++了,C#害的
Reply
[tc]天驰 reply on 十一月 16th, 2008 18:42:
这怎么是C#害得呢,用.net就别用STL和标准库,不兼容的东西没办法。
Reply
mazong1123 reply on 十一月 17th, 2008 23:14:
因为C#太方便了,所以有种堕落的感觉。。。
我怕以后都不会写C++了。。。
Reply
可是我的 glsl 也算是在“特定机器上”执行的代码呀。
vc.net 绝对不正常……
cs 就好很多了。
Reply
Posted 10 十一 2008 at 16:37 ¶“用.net就别用STL和标准库,不兼容的东西没办法。
果然 tc 有些事后还是会说出些有道理的话来的 。
Reply
Posted 16 十一 2008 at 19:25 ¶用什么都无所谓啦~
Reply
mazong1123 reply on 十二月 20th, 2008 0:05:
有空做项目没?
我手头可能会有个asp.net2.0开发的网站项目(我说可能),要接不?
Reply
[tc]天驰 reply on 十二月 20th, 2008 21:57:
暂时没,现在有两三个东西在做了,谢谢。
Reply
Post a Comment