Board logo

标题: 设想:使用汇编语言为批处理开发类似vb程序的gui界面 [打印本页]

作者: zx511325    时间: 2012-2-28 13:58     标题: 设想:使用汇编语言为批处理开发类似vb程序的gui界面

在读高三的时候,亲戚电脑桌面上一个叫”clean.bat"的文件令我十分好奇,并让我从此走上了批处理的学习之路。到现在差不多快三年了,在这三年中,我也编出了一些比较复杂的脚本。但始终觉得批处理还应该变得更强大一些,在界面上不应鸡肋,于是突发奇想,能不能使用批处理模拟出中学时代曾经用过的“好记星 V8000”学习机。但是批处理只有字符界面,没有图形界面,如果用纯批处理来写将会十分复杂,并且由于批处理只是脚本,在运行速度上不是很快,也没有方便快速的加载数据的命令。后来接触到了汇编语言,发现用汇编语言开发出来的程序运行速度极快,每秒运算次数不下于300000次,并且它能直接与显卡打交道,这使得用汇编语言开发图形界面与高速的底层数据库成为可能。
    我想写的这种gui界面就是在批处理窗口中显示出类似VB的各种控件:“文本框”、“列表”等,这些控件可以响应各种事件,事件发生后,执行内部脚本(关于内部脚本下面还要谈到)。另外,辅以高速的底层数据库功能(我曾写过纯批处理的数据库,那速度实在太慢了),文件读写功能。
    到现在我发现要解决的问题主要在以下几个方面:
1。与cmd.exe的兼容程度,我想写的这个程序得与cmd.exe完全兼容,共享命令、变量、数据库。
2。用汇编语言写出来的程序在windows下无法直接读写硬盘(因为有权限限制)
3。对中文的支持
4。这种程序是单线程的,而我想要在批处理窗口中显示多个窗体,运行多个程序,就不得不将单线程的程序模拟成多线程的,还要进行管理(这有点像在编操作系统)
5。构建脚本解释系统。我不是在设计一门新的编程语言,而是在升级批处理脚本语言,所以对批处理原有命令不作改动,而是另外再提供一些方便调用的数据库命令和控件属性设置命令。
6。这种程序如果全速运行的话cpu占用将会是100%(假设你的电脑是单核),要想方设法在空闲时段降低cpu占用
    目前,这个项目还在构思中,现在手上没有任何的技术资料,只能靠自己的大脑从零开始设计。
    说点题处话,这三年在大学里简直就是在混,课程混个及格就行,现在对本专业没有一丁点的兴趣,对大学里的教育也已经彻底失望了。还好,在业余时间还培养了这么一点编程的爱好,不然,可能我就天天在寝室里玩网游了。
    没想到这个项目居然非常耗费精力,每天在这个项目上花的时间不能超过两个小时,不然就会因为用脑过度而头晕。也许放松个几天再来编程要好一些,我可不想因为编程而累倒在电脑面前。现在的这些科研工作者们不就是“年轻的时候拿命换钱,老了再拿钱换命”么,希望你们还是保重自己的身体,别指望老板会来关心你们的健康(除非他们愿意在临晨两点钟时还陪在你身边,关注你的进展)。
    不知道各位有没有对这个感兴趣的,提点建议吧。
作者: zx511325    时间: 2012-2-28 14:07

gui界面开发完成后又可以用来写“三国杀”、“斗地主”等简单的游戏
作者: find    时间: 2012-2-28 18:38

建议想好毕业之后怎样养活自己,然后再考虑这个事情。
作者: ivor    时间: 2012-2-28 18:44

有这个价值吗,有必要吗,其他语言并不算难,实现起来速度比这个快的很,为啥非要用批处理,研究可以,真的没有价值
作者: applba    时间: 2012-2-28 21:34

如果你只接触编程一年,说出这些话情有可原。
但是你完了三年编程,还能说出这些“幻想”,我和佩服你。
你的需求用一种高级语言就可以实现:比如VB,比如python。
作者: powerbat    时间: 2012-2-28 23:12

VB主是在COM组件的基础上编写程序,而多数COM是用MFC实现的,MFC是对API的一系列封装,所以VB程序运行效率较低,但毫无疑问用VB开发程序极其简单。
在Windows系统上用汇编语言写程序,无非是不需要臃肿的运行时库(C运行时库其实也不大),主要工作还是调用API,跟C语言直接用SDK开发的程序没什么差别。如果你连API都不用也可以实现一个完整的功能,那你的确可以编操作系统了。

“这种程序如果全速运行的话cpu占用将会是100%(假设你的电脑是单核)”,早已不是DOS那种单任务时代了。你的程序是在Windows中运行的,不要忘了,一切程序的运行都要经过OS的任务调度,怎么可能让你100%占用CPU?
作者: cjiabing    时间: 2012-2-29 00:18

做些现实有用的东西吧。我这老人家都学批处理三年多了,如果我有其他精力我会去学一些高级语言的,毕竟,越是高级的语言我们发挥的舞台就越大,不像批处理,对于你们学生而言,死路一条的!~

     前两天我用一个300K的PiFast计算圆周率,小数点后1万位速度也就一瞬间完成的!~而批处理一瞬间FOR都不得1000位呢,我直感叹不如人啊!~
作者: jinzeyu    时间: 2012-2-29 08:28

批处理我认为是不可能
用其他高级语言可以
速度应该很快
至少比批处理快吧
批处理只是字符界面
作者: vsbat    时间: 2012-2-29 11:42

每一种语言都有它适合干的事情~~
作者: namejm    时间: 2012-2-29 14:13

有个从1999年开始做的工具,叫wbat,和你的想法十分类似,你可以参考一下,以防重复发明轮子。
官方简介中说:
Dialog boxes for DOS batch:

    menues, buttons, input fields, checkboxes, radio buttons, list selection

Easy handling, no ANSI stuff to deal with - colors are specified by name.
WBAT runs under all Windows versions or plain DOS.

官方地址:http://www.horstmuc.de/ui.htm

附件里有详细的中文教程
作者: broly    时间: 2012-2-29 16:07

回复 10# namejm


    WBAT,曾经用过下,不错。这个是用在DOS下比较多的,windows很少人用




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2