中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] [3] »
作者:
标题: 近日DOS开发的一些预研成果 上一主题 | 下一主题
sunx
初级用户





积分 38
发帖 17
注册 2006-1-16
状态 离线
『楼 主』:  近日DOS开发的一些预研成果

DOS编程是很熟的, 属于用debug.com 写程序的最早一代
但是多年没摸DOS了,
所以开工前曾经在这里发帖,想有经验的人推荐或者介绍几个现在比较成熟的DOS开发工具

但是很可惜, 没人回复, 只好自己一个个对比

我把我的一些结论供遇到类似问题的同行参考一下

我认为最优组合是 DJGPP + ALEGRO
原因如下:
DJGPP是32位的,  有经验的都懂为什么32bit代码比16bit代码容易写,这个不用多说
DJGPP是基于GCC的, 品质有保障, 不用浪费时间去熟悉语法特点
DJGPP是免费的,没有潜在的版权风险

ALEGRO已经有了通常需要的所有UI控件, checkbox, radiobox, text, list, 等,  并且可以非常容易的支持GB编码的中文 (说需要UNICODE格式那是外行的误解), 无需patch源代码就可以完美显示中文, 这也是比较重要的, 如果需要patch源代码那样以后随着alegro版本升级要不断维护自己的patch并且还不确定patch的原理是否仍然可行, 这会是个长期拖累

成熟的编译器 + 成熟的图形库,  开发产品和自己写个小程序玩玩是不一样的, 成熟这两个字的意义非常重要

IDE的话,rh不好用, 建议使用VC然后调用bat来实现整合


最后:

我强烈建议!!!!, 不要相信那些论坛经常看到推销的 xxx开发包 之类

我测试了所有能找到的, 压根就没一个好用的,不是年久失修就是编程环境恶劣,或者兼容性有问题
这种套件本来就不是1,2个人1,2年时间业余写写能搞好的
用这些没有经过严格测试, 没有专人维护, 缺乏技术支持, 缺乏实际应用的东西,等于让产品自杀


个人意见, 大家见仁见智

[ Last edited by sunx on 2007-7-26 at 11:03 AM ]

2007-7-26 10:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zqlcch
初级用户





积分 178
发帖 85
注册 2006-7-6
状态 离线
『第 2 楼』:  

但DJGPP+ALLEGRO目前发现一个缺点,编译出来的程序在AMD690芯片组或ATI早期的芯片组上键盘会失去响应,我试了4片(华硕、昂达)不同的主板,都有这种情况,楼主不妨有空验证一下或修正一下,年事已高,现在已经没有去找BUG的能力了。
如果要显示的内容少就直接改字体文件,100多个ASCII字符就用了,其实ALLEGRO的字体对应的是一幅图片,图片你要多大都成。

我强烈建议!!!!, 不要相信那些论坛经常看到推销的 xxx开发包之类。
这句话我反对,Winsail和ecurb2006的二进制开发包本身就是免费的,ecurb功能弱了一点,个人感觉winsail还是很方便的,我可不是winsail的托,以前用winsail写了好几个程序,都还不错。但像工控行业那种需要长时间稳定运行的环境我是没有试过。

[ Last edited by zqlcch on 2007-7-26 at 11:23 AM ]

2007-7-26 11:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunx
初级用户





积分 38
发帖 17
注册 2006-1-16
状态 离线
『第 3 楼』:  

对于少数跑不起来的硬件,那当然也没办法
只要硬件支持, djgpp还是首选的东西

Winsail和ecurb2006, 如果用在商业产品中,是要收费的
ecurb2006 免费包现在只支持16bit
Winsail 我感觉是从一个几年没更新过的sourceforge项目改来的

这两者我的使用感觉是,都比较粗糙, 并且整体观感, 是从一个缺乏整体设计的东西层层patch出来的, 所以有很多凌乱的地方, 看着心里不舒坦


个人意见, 当中抵触到厂家的地方, 见谅

[ Last edited by sunx on 2007-7-26 at 01:23 PM ]

2007-7-26 13:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
windowsvesta
初级用户




积分 138
发帖 67
注册 2007-7-4
来自 云南
状态 离线
『第 4 楼』:  

能用DJGPP的地方,为什么不直接使用Windows,我很不解!
楼主能解释一下吗?

我个人的感觉是“DJGPP是好东西,但生不逢时,它比WinCE编程更加复杂,群众基础还不是很好,几乎没有中文文档”!

[ Last edited by windowsvesta on 2007-7-26 at 02:12 PM ]

2007-7-26 14:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 5 楼』:  

WinSail 开发的目的是用于工业控制场合,它已经经过市场近十年的实际应用,安全、稳定、可靠,值得大家信赖!

界面一:


界面二:


界面三:


界面四:



界面五:


[ Last edited by firstsail on 2007-7-26 at 08:07 PM ]

2007-7-26 15:05
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
sunx
初级用户





积分 38
发帖 17
注册 2006-1-16
状态 离线
『第 6 楼』:  

你似乎不知道DJGPP是什么
DJGPP是个编译器, 和TC,BC没本质区别
你竟然能把一个编译器和Windows来比, 无语

  Quote:
Originally posted by windowsvesta at 2007-7-26 14:02:
能用DJGPP的地方,为什么不直接使用Windows,我很不解!
楼主能解释一下吗?

我个人的感觉是“DJGPP是好东西,但生不逢时,它比WinCE编程更加复杂, ...



2007-7-27 04:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 7 楼』:  

我对DJGPP的看法,只能代表我个人的观点,不代表普便性!

    我们常说,"DOS编程"、“windows编程”、“WinCE编程”这样的话,如果我们一定要咬文嚼字,一定要分析其语句的汉语语法,我们可以把这句话看成"根本无知的人才能说出的话".DOS是操作系统,它能编程吗?"windows"也是操作系统,它能编程吗?
   
    我们常说的"DOS编程",泛指利用DOS下的编译器来编程,比如说Turboc C、Basic、BC31、Pascal、DJGPP等工具来编程.

    我们常说的"Windows编程",泛指利用Windows下的编译器来编程,比如说Visual C++、Borland C++、Visual Basic、Visual Foxpro等工具来编程.

    所以IT词汇,只要大家约定俗成即可!

  "XXX开发包",它与DJGPP、它与Borland C++/Turboc C、它与Basic等等,并不是互斥关系,而是相互配合关系。比如说,将“开发包”的C++源代码放在DJGPP的编译器下编译后,至少95%以上的代码不作任何修改就可以成为DJGPP下的开发包。广义上说:"XXX开发包"是不依赖编译器的。

    关于DOS下的C++编译器,我个人的观点,还是优先推荐Borland C++3.1,关于DOS下的C编译器,优先推荐Turboc C、关于DOS下的Basic编译器,优先推荐QBasic、关于DOS下的Pascal编译器,优先推荐Turboc Pascal。

    我优先推荐Borland C++3.1,是因为:
  (1)它集“编辑、编译、链接、调试”于一身。
  (2)DOS下的C++程序员,至少90%以上都熟悉它,有广大的群众基础。
  (3)DOS下的C++编程,至少95%的实际编程应用能够得到满足。
  (4)在图书馆,现在(2007年)都还能买到关于“BC31/45"的函数库的书。
  (5)汉语是单音节词汇,“BC31”只有“BC”两个字母,并且是连续的两个字母,很好记忆;而“DJGPP”是五个字母,并且字母是分散的,不好记忆。所以在名称上,以中国人的习惯,BC就优于DJGPP。


     基于上面五点,DJGPP要超越BC31,还有很长的一段路要走,并且走得会相当艰难......。

[ Last edited by firstsail on 2007-7-27 at 11:42 AM ]

2007-7-27 10:01
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
sunx
初级用户





积分 38
发帖 17
注册 2006-1-16
状态 离线
『第 8 楼』:  

不完全同意firstsail说的,
不过当中大部分和我的贴要讨论的东西不沾边, 这里我只辩论和主题有关的:

对于一个开发者,  总是在寻找更好用的开发工具
不是说能满足编程需要这个最低纲领就ok了

wps的第一个版本是用 debug.com 写出来的,  现在我们不可能再去干这样的事情, 因为时代在进步, 开发工具的发展在不断简化程序员工作. 但是就当时的特定时代,debug.com就是唯一的最好的开发工具

BC也一样, BC有他的辉煌业绩,在16bit纯dos开发范畴, BC是举世公认的最好
但是BC已经停止发展很多年, 这很多年中的新技术,BC都是没有支持的

1. BC不支持32bit,  写过很多dos程序的人,肯定都对 seg:ofs 和 64k最大内存段限制深怀无奈, 现在的产品,有个大点的数据表很正常吧, 在16bit下处理大数据,想想都烦躁

2. BC下缺乏强大的图形支持, 没办法, 你也说了,我们是中国人,  中国人要汉字就得和图形打交道, 有BGI图形, 有TV UI,  可惜没有 TV+BGI GUI

3. DJGPP的编译器就是GCC,  在现在来说 GCC的群众基础恐怕比BC大多了, 用windows的不一定会用BC, 但是用过linux的就肯定和GCC打过交道

4. 除非别无选择,否则还是不要使用一个已经停止发展的东西, 实际上BC的现状连一个开源工具都不如, borland公司不管他了,业余程序员想改进他也没法;  反之DJGPP/Alegro 一直都在发展, 你报个bug上去, 很快就会在下一个版本中改正


-----------------------------------------------------------------------------------------------------------


最后,我实在忍不住想说一句, 你的第五点实在是有点太无厘头了, 要不以后我们选东西就学周星驰好,带把尺量长度, 哈哈, 调侃一下,没什么恶意

2007-7-27 15:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zqlcch
初级用户





积分 178
发帖 85
注册 2006-7-6
状态 离线
『第 9 楼』:  

DJGPP在国外的使用范围非常广,像多平台模拟器mame都是用djgpp+allegro做的,反而的BC基本是消失也。。

由于母语的问题,DJGPP在中国使用的人非常少,这是中国人学习计算机的硬伤啊。

2007-7-27 18:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
windowsvesta
初级用户




积分 138
发帖 67
注册 2007-7-4
来自 云南
状态 离线
『第 10 楼』:  

既然“DJGPP”基于DOS下的32位运行,有那么大的市场,为什么外国佬不把它发展成象Visual C++的样式,这是技术问题,还是开发投入与市场回报不成正比?

[ Last edited by windowsvesta on 2007-7-27 at 07:07 PM ]

2007-7-27 19:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
windowsvesta
初级用户




积分 138
发帖 67
注册 2007-7-4
来自 云南
状态 离线
『第 11 楼』:  

我相信,只要Borland公司愿意,开发DOS下的32位的保护模式编译器,绝对是最好的32位的保护模式编译器!但是,Borland为什么不愿意将“BC”升级为32位的保护模式编译器呢?
我个人认为DOS下的32位的保护模式编译器不会掀起太大的波浪,只会在“特殊场合”上有所应用,并且主要限于“精英级的人”在使用!所以DJGPP天生就是“精英的、非大众化的”。
UNIX走精英之路,Windows走大众之路,谁输谁赢?

[ Last edited by windowsvesta on 2007-7-27 at 07:35 PM ]

2007-7-27 19:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 12 楼』:  



  Quote:
“BC不支持32bit,  写过很多dos程序的人,肯定都对 seg:ofs 和 64k最大内存段限制深怀无奈”。

只有在汇编语言年代,才经常跟“Seg : Off”打交道,进入高级语言(如BC31)时代后,这样的交道,可以说是“千年等一回了”。

  Quote:
现在的产品,有个大点的数据表很正常吧, 在16bit下处理大数据,想想都烦躁

如果处理大量数据不怕“毫秒”级的滞后,完全可以用XMS扩展内存解决,并且XMS内部处理本身也是“保护模式”的。

  Quote:
BC下缺乏强大的图形支持, 没办法, 你也说了,我们是中国人,  中国人要汉字就得和图形打交道, 有BGI图形, 有TV UI,  可惜没有 TV+BGI GUI。

其实BC31是DOS下所有编译器中,具有最强大的图形支持,只是没有GUI部份,所以我推出了WinSail的GUI部份,就是为了弥补它的不足,就如同Alegro弥补DJGPP的不足。

  Quote:
DJGPP的编译器就是GCC,  在现在来说 GCC的群众基础恐怕比BC大多了, 用windows的不一定会用BC, 但是用过linux的就肯定和GCC打过交道

我不太认同,TCC、BCC、GCC这些工具,主要还是UNIX下编程的人,才会被迫使用它,从而熟悉它。有一个数据是:“过半的数据库应用是用Visual Basic”写出来的。所以说用xCC的人绝对是凤毛麟角!只有高手级的人物才会熟练地使用它。

  Quote:
  除非别无选择,否则还是不要使用一个已经停止发展的东西, 实际上BC的现状连一个开源工具都不如,

事实是:DJGPP也不可能提供源代码公开吧!Windows也没有提供源代码,老百姓不也同样用得欢!

  Quote:
最后,我实在忍不住想说一句, 你的第五点实在是有点太无厘头了, 要不以后我们选东西就学周星驰好,带把尺量长度, 哈哈, 调侃一下,没什么恶意。

SunX兄可不要低估了“英文名称”在中国人眼中的感受,“Alegro”这些词汇在"牛津字典"里面查不到吧,在"金山词霸"里面也找不到,总之到今天为止,我还无法将它拼读出来,看到不懂的"英文字母组合"就两眼昏花,不知道上帝为什么要创造"拉丁语系"。
  
    看看现在的“名星”,大多数人都经过了“风水师”的改造,例如“成龙”呀、“王菲” 呀、还有“周星驰”等等。“风水学”,可是一本难以捉摸的科学!信之有,不信之无.


   所以我认为"DJGPP"只有在UNIX下才有它的生命力!才有它发展的土壤.

[ Last edited by firstsail on 2007-7-27 at 09:33 PM ]

2007-7-27 21:01
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 13 楼』:  

现在计算机硬件发展太快了,我提一个疑问——据说intel下一代芯片组将砍掉LPT、COM、PCI,基于老内核的DOS恐怕很难再适应了,不知大家有何打算?

2007-7-27 22:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 14 楼』:  

至于工控方面,九几年的时候基于MSDOS、DRDOS的特多,这几年呢基于windows的则占了大多数,采用VB+AD/DA采集卡驱动程序的越来越多了(开发速度快),这一两年,甚至AD/DA卡也越来越少了,直接采用USB的开始逐步流行起来了。说起自由来,裸机最自由了,我们为什么要用操作系统呢?为的是调用它的功能,可是DOS能给我们的功能绝大部分只集中在DISK方面。

2007-7-27 23:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sunx
初级用户





积分 38
发帖 17
注册 2006-1-16
状态 离线
『第 15 楼』:  

工作是实实在在的, 没法建立在如果上
无论什么原因, bc没发展32位,没有了就是没有了,   我说borland当时是因为没有能力更新BC编译核心 (BC队伍散了, 并且delphi项目很紧迫), 很多人一定不愿意接受

至于32位好不好, 这个无需争论, 因为这是共识性的东西

-----------------------------------------------------------------------------------------

顺便对firstsail说一句, 你和我较劲没意义啊
因为作为开发者,我们需要的不仅仅是可用, 而是尽量好用

我当然明白 seg:ofs 也能满足使用,  当然也清楚 xms可以存数据, 但是这不能作为让我放着 32位平板寻址不用, 去靠调整段来访问超过64k的数据, 靠xms管理接口来来回拷贝切换内存的理由

就像, 明明我可以坐车去的地方, 你非要我走路去, 这是没有理由的
人的时间精力有限, 所以不得不在方法上作最优选择

同样原因, 从稳定性,从生命力考虑, 从长期成本,  我知道bc+winsail 也能用, 但是这不能作为要求我放着 djgpp+alegro 又开源又免费用户群又广泛, 这么优秀的东西不用的理由啊

另外,否定一个东西之前,应该先充分了解这个东西 , 这样你的判断才会有理有据.
DJGPP是开源的, 每个包的s结尾的版本就是源代码,  
你还把GCC这个现在具有这么强大影响力的工具,说成是linux下人才会被迫使用的东西
论及 djgpp/gcc/linux, 你应该至少把那些都拿过来, 写上几个比hellworld 复杂点的程序, 那样才会有真实的观感

我对winsail又没什么仇, 如果东西好,我也一样会用

[ Last edited by sunx on 2007-7-28 at 01:33 AM ]

2007-7-28 01:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: