Date: Tue, 19 Dec 2000 13:41:38 +0200 (IST) From: Eli Zaretskii X-Sender: eliz AT is To: djgpp AT delorie DOT com Subject: Re: To those of you who use NT/2000, we salute you In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Mon, 18 Dec 2000, dragonsong wrote: > > Like the fact that DJGPP is a 32-bit compiler which produces 32-bit > > programs, perhaps? > > Then I'm really missing the point here. What precisely is the difference > between djgpp and cygwin? Other than the included cwsdpmi that allows for > running compiled (32-bit!) code in a native DOS environment? DJGPP produces DOS programs, as far as DOS and Windows are concerned. That is, the structure of the binary executable file produced by DJGPP looks like a very small 16-bit real-mode program, which has a very large and strangely formatted data attached to it. Once invoked, the small 16-bit program calls a certain function to switch the CPU into 32-bit protected mode, and then jumps into the middle of that strangely-formatted data, which really is the protected-mode program you wrote, but in a binary format which DOS and Windows don't understand. Your application code always runs in 32-bit protected mode. Nevertheless, since DJGPP programs are perceived by Windows as DOS programs, they don't have access to some nifty Windows features, such as the Win32 API, GUI, network services, COM and OLE, etc. By contrast, Cygwin generates native Win32 applications, and therefore can overcome the above deficiencies.