|
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">
When it comes to C language under DOS, most friends will think of Borland C. Unfortunately, a larger game involves a large amount of data such as images and sounds. Obviously, writing programs in 16-bit real mode will be hindered by the memory limit of 640K : (And it is not so convenient to write 32-bit programs with BC. Some friends have switched to Windows 95 programming, and the remaining game programmers still fighting in the DOS environment have started to use other C languages designed for 32-bit protected mode. Watcom C once became popular all over the country. And another powerful C system DJGPP has been ignored. Yunfeng has also learned to use Watcom C, but once he tried DJGPP, he completely deleted Watcom C from the hard drive, and now writes this small article to promote this powerful tool in China :) The following text does not intend to belittle the powerful functions of other C language systems, and the comments are only the opinions of Yunfeng. First of all, DJGPP is a GNU software. In other words, you can get the entire source code of the system and modify it arbitrarily. Because of this, DJGPP develops much faster than other commercial C systems. Countless computer experts are constantly improving it and injecting new vitality into it; and the discovered BUG can also be removed in the first time. Through the Internet, you can always use the latest technology in the world without paying for it :) I like the 32-bit protected mode engine CWSDPMI of DJGPP very much. At least its loading speed is much faster and its volume is much smaller than the commonly used DOS/4GW of Watcom C. If you don't use DPMI and switch to VCPI, you don't even need the program CWSDPMI :) Secondly, DJGPP has rich peripheral software. I am very satisfied with the integrated environment RHIDE compiled for DJGPP. It is simply wonderful. The interface is imitated according to my familiar Borland C++ 3.1, and many considerate designs are added in the details. Especially the built-in Debug, which not only has functions exceeding Turbo Debug, but also has first-class stability. This IDE not only supports C, but also supports C++, Obj C, Pascal, Asm, Ada and other Gnu versions of multiple languages, making mixed programming a piece of cake. And another game development library called Allegro is all-inclusive and is a must-have for game programmers. If you are still using Borland C to write programs, then it is the easiest to switch to DJGPP :) It is still the same interface, the same to write your program, but you don't have to consider far pointers, near pointers; what 64K limit; what extended memory, upper memory. Just do as you want, and you will like such a good thing :) -------------------------------------------------------------------------------- You can find DJGPP on many FTP sites, for example ft://ftp.cdrom.com/pub/simtelnet/gnu/djgpp/ ft://ftp.simtel.net/pub/simtelnet/gnu/djgpp/ The latest version of DJGPP can be found below. The file with b is the executable file, the one with d is various documents, and the one with s is the source code :) To make your DJGPP run, the following files are necessary: gcc281b.zip 1.34M Gnu C compiler bnu281b.zip 1.90M Essential for the Djgpp series, linker, etc. djdev202b.zip 1.42M Gnu C library files, header files, etc. csdpmi4b.zip 41k DPMI support engine Some other packages are briefly introduced below rhide14b.zip 1.31M DJGPP supporting integrated environment mak377b.zip 248K Gnu Make tool alleg311.zip 1.43M A powerful game development library gpp281b.zip 1.29M Gnu C++ compiler There are many other software packages, which will not be described one by one here. You can first download that LISTINGS.zip back and read it slowly :)
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 |
|
|
Wengier
系统支持
             “新DOS时代”站长
积分 27736
发帖 10521
注册 2002-10-9
状态 离线
|
『第 2 楼』:
使用 LLM 解释/回答一下
说明:DJGPP在国外现在相当有名,是DOS下开发保护模式程序的利器。而且当用了RHIDE后,界面则为全图形方式的了,就像Turbo C++那样,真不错!
Description: DJGPP is quite famous abroad now, and it is a powerful tool for developing protected mode programs under DOS. Moreover, when RHIDE is used, the interface becomes a full graphical mode, just like Turbo C++, which is really great!
|

Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
 |
|
2003-5-5 00:00 |
|
|
Dark-Destroy
元老会员
        
积分 8312
发帖 3551
注册 2003-3-22
状态 离线
|
『第 3 楼』:
使用 LLM 解释/回答一下
下載了RHIDE候,不知道如何使用,都是E文看不懂
After downloading RHIDE, I don't know how to use it. All are in English and I can't understand.
|

MSN:tiqit2@hotmail.com
 |
|
2003-5-5 00:00 |
|
|
红色狂想
金牌会员
      龙哥DOS
积分 4289
发帖 1501
注册 2003-2-23 来自 河南省
状态 离线
|
『第 4 楼』:
使用 LLM 解释/回答一下
全部下载后怎样安装使用呀,能不能请Wengier站长具体介绍一下?
How to install and use it after downloading all? Can you please ask站长 Wengier to introduce it specifically?
|

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 |
|
|
红色狂想
金牌会员
      龙哥DOS
积分 4289
发帖 1501
注册 2003-2-23 来自 河南省
状态 离线
|
『第 5 楼』:
使用 LLM 解释/回答一下
难道就没人回答我吗?
Is there really no one to answer me?
|

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 |
|
|
Wengier
系统支持
             “新DOS时代”站长
积分 27736
发帖 10521
注册 2002-10-9
状态 离线
|
『第 6 楼』:
使用 LLM 解释/回答一下
有人回答呀!把RHIDE解压到DJGPP文件夹中,并设置DJDIR和DJGPP环境变量后运行RHIDE.EXE程序即可。
Someone answer! Extract RHIDE to the DJGPP folder, set the DJDIR and DJGPP environment variables, and then run the RHIDE.EXE program.
|

Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
 |
|
2003-5-5 00:00 |
|
|
xxlwsj
初级用户
 
积分 137
发帖 14
注册 2003-2-21
状态 离线
|
『第 7 楼』:
使用 LLM 解释/回答一下
RHIDE在2000下不行,老是找不到路径保存,而在98和dos下没有问题。
RHIDE doesn't work under Windows 2000. It always fails to find the path for saving, while it works fine under Windows 98 and 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。
The following is a quote from xxlwsj on 2003-5-5 21:48:59:
RHIDE doesn't work under 2000, always can't find the path to save, but it's okay under 98 and DOS.
It can be seen that this is a "Command Prompt" bug in Win2K.
|

Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
 |
|
2003-5-5 00:00 |
|
|
红色狂想
金牌会员
      龙哥DOS
积分 4289
发帖 1501
注册 2003-2-23 来自 河南省
状态 离线
|
『第 9 楼』:
使用 LLM 解释/回答一下
Wengier 站长:
我把顶楼你介绍的哪个下载地址(ftp://ftp.cdrom.com/pub/simtelnet/gnu/djgpp/)内的所有文件下载到本地行吗,里面有没有 RHIDE 这个文件呀,这个 DJGPP 的版本是多少呢?另外,全部下载后,发现里面有好多压缩包文件。请问,需不需要对他们全部进行解压缩处理?
站长 Wengier:
I downloaded all the files in the download address you introduced at the top (ftp://ftp.cdrom.com/pub/simtelnet/gnu/djgpp/) to my local. Is there a file named RHIDE in it? What version of DJGPP is this? Also, after downloading all, I found many compressed package files. Do I need to decompress all of them?
|

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 |
|
|
Wengier
系统支持
             “新DOS时代”站长
积分 27736
发帖 10521
注册 2002-10-9
状态 离线
|
『第 10 楼』:
使用 LLM 解释/回答一下
里面有这个文件呀,不过要仔细找一下。比如DJGPP本身、BNU工具、RHIDE的可执行程序全下载下来并解压即可。
There is this file inside, but you need to look for it carefully. For example, download and decompress the executable programs of DJGPP itself, BNU tools, and RHIDE in full.
|

Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
 |
|
2003-5-6 00:00 |
|
|
红色狂想
金牌会员
      龙哥DOS
积分 4289
发帖 1501
注册 2003-2-23 来自 河南省
状态 离线
|
『第 11 楼』:
使用 LLM 解释/回答一下
下载的速度好慢呀,昨天我就没有等着!怎么那么多文件呀,比原来的多多了,都是 DJGPP 的文件吗?
另外,这个 DJGPP 的版本是多少呢?
The download speed is really slow. I didn't wait for it yesterday! Why are there so many files? There are way more than before. Are they all DJGPP files?
Also, what version of DJGPP is this?
|

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 |
|
|
Wengier
系统支持
             “新DOS时代”站长
积分 27736
发帖 10521
注册 2002-10-9
状态 离线
|
『第 12 楼』:
使用 LLM 解释/回答一下
全是DJGPP的文件呢,不过只有一个是主程序,其它都是辐助程序,比如GUI界面、编译器、调试器等等。不过若一个辐助程序也没有的话那是几乎什么事都做不了的。
All are DJGPP files, but only one is the main program, and the others are auxiliary programs, such as GUI interfaces, compilers, debuggers, etc. However, if there are no auxiliary programs at all, then almost nothing can be done.
|

Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
 |
|
2003-5-6 00:00 |
|
|
红色狂想
金牌会员
      龙哥DOS
积分 4289
发帖 1501
注册 2003-2-23 来自 河南省
状态 离线
|
『第 13 楼』:
使用 LLM 解释/回答一下
那他内部的目录层次是不是不能改动呀?
So, is the directory hierarchy inside it not allowed to be changed?
|

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 |
|
|
红色狂想
金牌会员
      龙哥DOS
积分 4289
发帖 1501
注册 2003-2-23 来自 河南省
状态 离线
|
『第 14 楼』:
使用 LLM 解释/回答一下
Wengier 站长快来吧!
我要问的是:那他内部的目录层次是不是不能改动呀?
版本号是多少?
站长Wengier, come quickly!
What I want to ask is: Is the internal directory hierarchy unable to be changed?
What is the version number?
|

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 |
|
|
Wengier
系统支持
             “新DOS时代”站长
积分 27736
发帖 10521
注册 2002-10-9
状态 离线
|
『第 15 楼』:
使用 LLM 解释/回答一下
目录层次照原来的解压就行了。
Just decompress it according to the original directory hierarchy.
|

Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
 |
|
2003-5-6 00:00 |
|