中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » [转帖] DJGPP--32位的C语言编程环境
English/Chinese Fix Translation
作者:
标题: [转帖] DJGPP--32位的C语言编程环境 上一主题 | 下一主题
Wengier
系统支持

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『楼 主』:  [转帖] DJGPP--32位的C语言编程环境 [已使用 LLM 解释]

提起DOS下的C语言,大多数朋友都会想到Borland C,可
惜一个大点的游戏涉及到图象声音等等大量的数据。显然在16位实模式下
写程序,便会因为640K的内存限制而碍手碍脚:(而用BC写32位程
序就不那么方便了。有的朋友转到了Windows 95编程,而剩下来
仍奋战在DOS环境下的游戏程序员便开始使用别的为32位保护模式设计
的C语言了。Watcom C 一时间风靡全国。而另一个强大的C系统
DJGPP,却无人问津。云风也曾学习使用过Watcom C,可是一
当试用DJGPP,便彻底删除了硬盘中的Watcom C,现作此小文
以在国内推广此强力工具:)                    
以下文字无意贬低其它C语言系统的强大功能,评论文字仅为云风一人之见
  首先,DJGPP是一个GNU软件,换句话说,你可以得到它整个系
统的源代码,且可以任意修改。正因如此,DJGPP比起其它的商业化C
系统技术的发展要快的多,无数计算机高手不停的在完善它,为它注入新的
活力;而被发现的BUG也能在第一时间被去掉。通过Internet,
你永远可以使用到世界上的最新技术,而且不用为其付费:)      
  我很喜欢DJGPP的32位保护模式引擎CWSDPMI,至少它的
装栽速度比Watcom C常用的DOS/4GW要快的多,体积小的多
如果不使用DPMI,而换用VCPI,甚至连CWSDPMI这个程序都
不需要:)                            
  其次,DJGPP拥有丰富的外围软件,我很满意那个为DJGPP而
编制的集成环境RHIDE。简直棒极了,界面按我熟悉的Borland
C++ 3、1仿制而成,而细微处又增加了许多体贴人心的设计,尤其内
置的Debug,不仅功能超过了Turbo Debug,而且稳定性一
流。这套IDE不仅支持C,而且支持C++,Obj C,Pascal
Asm,Ada等多种语言的GNU版本,使得混合编程易如反掌。   
  而另一个叫作Allegro的游戏开发库简直无所不包,是游戏程序
员的必备。                            
  如果你现在还在使用Borland C写程序,那么转到DJGPP
来是最容易不过了:)还是一样的界面,一样的写你的程序,只是你不必在
考虑什么远指针,近指针;什么64K限制;什么扩展内存,高端内存。就
按你所想去做吧,你会喜欢上这么一个好东东的:)          

--------------------------------------------------------------------------------
你可以在许多FTP站找到DJGPP,比如             
ftp://ftp.cdrom.com/pub/simtelnet/gnu/djgpp/
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/
下能找到DJGPP的最新版。其中文件名为b的是可执行文件,为d的是
各种文档,为s的是源代码:)                   
要让你的DJGPP跑起来,以下文件是必须的:
gcc281b.zip 1.34M Gnu C的编译器
bnu281b.zip 1.90M Djgpp系列必备,链接程序等
djdev202b.zip 1.42M Gnu C的库文件,头文件等
csdpmi4b.zip 41k DPMI支持引擎
关于其它一些包,下面在做一点简单的介绍
rhide14b.zip 1.31M DJGPP的配套集成环境
mak377b.zip 248K Gnu Make 工具
alleg311.zip 1.43M 一个强大的游戏开发库
gpp281b.zip 1.29M Gnu C++的编译器
还有许多软件包,在此不一一叙述了。你可以先下载那个LISTINGS.zip回去慢慢看<img src="images/smilies/face-laugh.png" align="absmiddle" border="0">
LLM 解释

关于DJGPP的技术解析

1. DJGPP的基本属性

DJGPP是一个基于GNU的软件,这意味着它的整个系统源代码是公开的,用户能够自由地对其进行修改。相比商业化的C系统,由于有众多计算机高手不断参与完善,其技术发展速度更快,能及时修复发现的错误,并且可以通过互联网获取最新技术且无需付费。

(1)32位保护模式引擎CWSDPMI

CWSDPMI是DJGPP的一个重要组成部分,它的加载速度比Watcom C常用的DOS/4GW快很多,体积也小很多。如果不使用DPMI而换用VCPI,甚至都不需要CWSDPMI这个程序。DPMI(DOS Protected Mode Interface)是DOS保护模式接口,它允许程序在DOS的保护模式下运行,从而突破16位实模式下的内存等限制。

2. DJGPP的外围软件优势

  • 集成环境RHIDE
    • RHIDE是为DJGPP编制的集成环境,界面仿制自Borland C++ 3.1,但有很多贴心设计。它内置的Debug功能不仅功能超过Turbo Debug,而且稳定性很好。该IDE支持多种语言的GNU版本,包括C、C++、Obj C、Pascal、Asm、Ada等,使得混合编程变得容易。
  • 游戏开发库Allegro: Allegro是一个非常强大的游戏开发库,对于游戏程序员来说是必备的工具,它几乎涵盖了游戏开发所需的各种功能。

3. 从Borland C转到DJGPP的便利性

对于还在使用Borland C写程序的用户,转到DJGPP很容易,因为界面相似,而且不需要再考虑远指针、近指针、64K内存限制、扩展内存和高端内存等16位实模式下的繁琐问题,可以更专注于程序的实现。

4. DJGPP相关文件获取与必备文件

  • 获取地址:可以在很多FTP站找到DJGPP,例如ftp://ftp.cdrom.com/pub/simtelnet/gnu/djgpp/和ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/等,在这些站点能找到最新版的DJGPP。其中文件名以b结尾的是可执行文件,d结尾的是各种文档,s结尾的是源代码。
  • 必备文件
    • gcc281b.zip:1.34M,是Gnu C的编译器。
    • bnu281b.zip:1.90M,是Djgpp系列必备的链接程序等文件。
    • djdev202b.zip:1.42M,包含Gnu C的库文件、头文件等。
    • csdpmi4b.zip:41k,是DPMI支持引擎。

另外还有其他相关包,如rhide14b.zip(1.31M,DJGPP的配套集成环境)、mak377b.zip(248K,Gnu Make工具)、alleg311.zip(1.43M,强大的游戏开发库)、gpp281b.zip(1.29M,Gnu C++的编译器)等,用户可以根据需求下载,还可以下载LISTINGS.zip来获取更多相关信息。

用代码示例来简单展示DJGPP下一个简单C程序的编写(假设使用RHIDE集成环境):

#include <stdio.h>

int main() {
    printf("Hello, DJGPP!\n");
    return 0;
}

这段代码是一个简单的C语言程序,在DJGPP环境下可以通过编译器进行编译链接运行。首先#include <stdio.h>包含标准输入输出头文件,然后main函数是程序的入口,在main函数中调用printf函数输出“Hello, DJGPP!”,最后返回0表示程序正常结束。编译时使用DJGPP的Gnu C编译器(如gcc)进行编译,例如在命令行中如果安装好DJGPP环境,进入该代码所在目录,执行gcc 文件名.c -o 输出文件名命令即可生成可执行文件,然后运行该可执行文件就能看到输出结果。





Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-5-5 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (29206679)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

说明:DJGPP在国外现在相当有名,是DOS下开发保护模式程序的利器。而且当用了RHIDE后,界面则为全图形方式的了,就像Turbo C++那样,真不错!




Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-5-5 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (29206679)  编辑帖子  回复  引用回复
Dark-Destroy
元老会员





积分 8312
发帖 3551
注册 2003-3-22
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

下載了RHIDE候,不知道如何使用,都是E文看不懂




MSN:tiqit2@hotmail.com
2003-5-5 00:00
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
红色狂想
金牌会员

龙哥DOS


积分 4289
发帖 1501
注册 2003-2-23
来自 河南省
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

全部下载后怎样安装使用呀,能不能请Wengier站长具体介绍一下?




C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
2003-5-5 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (189236106)  编辑帖子  回复  引用回复
红色狂想
金牌会员

龙哥DOS


积分 4289
发帖 1501
注册 2003-2-23
来自 河南省
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

难道就没人回答我吗?




C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
2003-5-5 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (189236106)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

有人回答呀!把RHIDE解压到DJGPP文件夹中,并设置DJDIR和DJGPP环境变量后运行RHIDE.EXE程序即可。




Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-5-5 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (29206679)  编辑帖子  回复  引用回复
xxlwsj
初级用户




积分 137
发帖 14
注册 2003-2-21
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

RHIDE在2000下不行,老是找不到路径保存,而在98和dos下没有问题。


2003-5-5 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

以下是引用xxlwsj在2003-5-5 21:48:59的发言:
RHIDE在2000下不行,老是找不到路径保存,而在98和dos下没有问题。


可见这是Win2K的“命令提示符”的BUG。




Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-5-5 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (29206679)  编辑帖子  回复  引用回复
红色狂想
金牌会员

龙哥DOS


积分 4289
发帖 1501
注册 2003-2-23
来自 河南省
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

Wengier 站长:
我把顶楼你介绍的哪个下载地址(ftp://ftp.cdrom.com/pub/simtelnet/gnu/djgpp/)内的所有文件下载到本地行吗,里面有没有 RHIDE 这个文件呀,这个 DJGPP 的版本是多少呢?另外,全部下载后,发现里面有好多压缩包文件。请问,需不需要对他们全部进行解压缩处理?




C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
2003-5-6 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (189236106)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

里面有这个文件呀,不过要仔细找一下。比如DJGPP本身、BNU工具、RHIDE的可执行程序全下载下来并解压即可。




Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-5-6 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (29206679)  编辑帖子  回复  引用回复
红色狂想
金牌会员

龙哥DOS


积分 4289
发帖 1501
注册 2003-2-23
来自 河南省
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

下载的速度好慢呀,昨天我就没有等着!怎么那么多文件呀,比原来的多多了,都是 DJGPP 的文件吗?
另外,这个 DJGPP 的版本是多少呢?




C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
2003-5-6 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (189236106)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

全是DJGPP的文件呢,不过只有一个是主程序,其它都是辐助程序,比如GUI界面、编译器、调试器等等。不过若一个辐助程序也没有的话那是几乎什么事都做不了的。




Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-5-6 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (29206679)  编辑帖子  回复  引用回复
红色狂想
金牌会员

龙哥DOS


积分 4289
发帖 1501
注册 2003-2-23
来自 河南省
状态 离线
『第 13 楼』:   使用 LLM 解释/回答一下

那他内部的目录层次是不是不能改动呀?




C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
2003-5-6 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (189236106)  编辑帖子  回复  引用回复
红色狂想
金牌会员

龙哥DOS


积分 4289
发帖 1501
注册 2003-2-23
来自 河南省
状态 离线
『第 14 楼』:   使用 LLM 解释/回答一下

Wengier 站长快来吧!

我要问的是:那他内部的目录层次是不是不能改动呀?
版本号是多少?




C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
2003-5-6 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (189236106)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 15 楼』:   使用 LLM 解释/回答一下

目录层次照原来的解压就行了。




Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-5-6 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (29206679)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: