Mail Archives: djgpp/1998/09/09/14:30:21
From: | Ilya Ryzhenkov <orangy AT inetlab DOT com>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | DLM library
|
Date: | Wed, 09 Sep 1998 23:58:31 +0600
|
Organization: | iNetLab
|
Lines: | 39
|
Distribution: | world
|
Message-ID: | <35F6C1C7.9D10EA3A@inetlab.com>
|
NNTP-Posting-Host: | ppp2.isp.nsc.ru
|
Mime-Version: | 1.0
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
Greetings!
DLM library project has been reborn and it's official info-page
is at http://www.iis.nsk.su/orangy/dlm/
There is not much there for now, but I post this URL for anyone
interested for him to be in focus.
Briefly :
DLM stands for "Dynamic Link Module". DLM engine creates
environment, which allow you to link different modules together at
run-time. The way it works is similar to the static linker
functionality, but is performed during program execution. Many
popular systems, that allow dynamic loading and using of modules
(or libraries) use the "ask-me-for-a-pointer" scheme. In such
environments you must first load module, than ask for pointer and
then reference data and/or code via pointer. Also you can't have
unreferenced symbols left in your code in this systems (for example
Windows DLL and so on).
Unlike all of this DLM environment allows you to write your
source code as if there would be static linkage (and you really can
use the same source code without ANY changes for DLM-oriented
version and static linked version by creating some #defines).
There is no special syntax for calling functions or referencing
data from other DLMs. For example, let func() be defined in
some.dlm. You can use it like :
if ( ! LoadDLM( "some.dlm" ) )
printf( "Can't load DLM some.dlm\n" );
else
func();
for more information visit http://www.iis.nsk.su/orangy/dlm/
============================
Ilya P. Ryzhenkov aka Orangy
iNetLab
e-mail : orangy AT inetlab DOT com
ICQ : 17942172
- Raw text -