From: Ilya Ryzhenkov 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 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk 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