From: "Charles Sandmann" Newsgroups: comp.os.msdos.djgpp Subject: Re: Question about dxe file Date: Wed, 11 Jun 1997 22:19:16 Organization: Aspen Technology, Inc. Message-ID: <339f2464.sandmann@clio.rice.edu> References: <339E5E14 DOT 8EE AT emic DOT ucl DOT ac DOT be> Reply-To: sandmann AT clio DOT rice DOT edu NNTP-Posting-Host: spica.dmccorp.com Lines: 20 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk > I'm trying to make a dxe file which I intend to load in my > application. The test program is very simple : > printf("Hello\n"); You can't link in any libc functions which reference static variables (or which call routines which reference static variables) in a DXE. Its a design limitation. Thus you can't link I/O functions, allocate memory, or many other useful things. DXE was designed to be the simplest dynamic load function possible, with a tiny footprint (it's built into every DJGPP image for loading the FPU emulator, if needed). It was planned for external callable routines, the FPU emulator, and graphics drivers. It's not a full DLL type substitute (there are other more full featured packages available). You can do some amazing things with it, but you have to create an entry point vector (have that be the returned symbol address) and pass the addresses of "special" routines which you can't link in to an init routine which stores the addresses (in the parent image) of items which need to be called/referenced.