delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/06/12/08:32:47

From: "Charles Sandmann" <sandmann AT clio DOT rice DOT edu>
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

> 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.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019