找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24234|回复: 10

设想:使用汇编语言为批处理开发类似vb程序的gui界面

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

评分

参与人数 1PB +10 收起 理由
CrLf + 10 无论是否能成功,总是一个有益的尝试

查看全部评分

 楼主| 发表于 2012-2-28 14:07:06 | 显示全部楼层
gui界面开发完成后又可以用来写“三国杀”、“斗地主”等简单的游戏
发表于 2012-2-28 18:38:38 | 显示全部楼层
建议想好毕业之后怎样养活自己,然后再考虑这个事情。
发表于 2012-2-28 18:44:53 | 显示全部楼层
有这个价值吗,有必要吗,其他语言并不算难,实现起来速度比这个快的很,为啥非要用批处理,研究可以,真的没有价值
发表于 2012-2-28 21:34:37 | 显示全部楼层
如果你只接触编程一年,说出这些话情有可原。
但是你完了三年编程,还能说出这些“幻想”,我和佩服你。
你的需求用一种高级语言就可以实现:比如VB,比如python。
发表于 2012-2-28 23:12:46 | 显示全部楼层
VB主是在COM组件的基础上编写程序,而多数COM是用MFC实现的,MFC是对API的一系列封装,所以VB程序运行效率较低,但毫无疑问用VB开发程序极其简单。
在Windows系统上用汇编语言写程序,无非是不需要臃肿的运行时库(C运行时库其实也不大),主要工作还是调用API,跟C语言直接用SDK开发的程序没什么差别。如果你连API都不用也可以实现一个完整的功能,那你的确可以编操作系统了。

“这种程序如果全速运行的话cpu占用将会是100%(假设你的电脑是单核)”,早已不是DOS那种单任务时代了。你的程序是在Windows中运行的,不要忘了,一切程序的运行都要经过OS的任务调度,怎么可能让你100%占用CPU?
发表于 2012-2-29 00:18:51 | 显示全部楼层
做些现实有用的东西吧。我这老人家都学批处理三年多了,如果我有其他精力我会去学一些高级语言的,毕竟,越是高级的语言我们发挥的舞台就越大,不像批处理,对于你们学生而言,死路一条的!~

     前两天我用一个300K的PiFast计算圆周率,小数点后1万位速度也就一瞬间完成的!~而批处理一瞬间FOR都不得1000位呢,我直感叹不如人啊!~
发表于 2012-2-29 08:28:03 | 显示全部楼层
批处理我认为是不可能
用其他高级语言可以
速度应该很快
至少比批处理快吧
批处理只是字符界面
发表于 2012-2-29 11:42:08 | 显示全部楼层
每一种语言都有它适合干的事情~~
发表于 2012-2-29 14:13:43 | 显示全部楼层
有个从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

附件里有详细的中文教程
发表于 2012-2-29 16:07:23 | 显示全部楼层
回复 10# namejm


    WBAT,曾经用过下,不错。这个是用在DOS下比较多的,windows很少人用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 17:02 , Processed in 0.015450 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表