Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Warplink version 2.6 - <b>ddl runtime operation</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
DDL Runtime Operation
----------------------------------------------------------------------------------------

 Upon startup, the .EXE loader will load the master .DDL file's DDL manager 
 code into memory and transfer control to that code.  The DDL manager will
 allocate 640K of EMS or XMS, then begin building the program to execute.  
 First, all required modules in the master .DDL file are loaded.  Then, all
 the elective modules from the master .DDL file that resolve symbol 
 references are brought in.  The process is repeated for each support .DDL.
 If unresolved symbols remain, another pass is performed on the elective 
 modules of each .DDL, repeating until either symbol references are resolved
 or no elective module is added in a pass.  Once all symbol references are 
 resolved, control passes either to the overlay manager portion of the DDL
 manager file or directly to the program code if there are no overlays.

 The EMS or XMS allocated by the DDL manager is freed prior to program
 execution or upon error termination.  Any allocated EMS or XMS will be 
 available for the program's use, or for the overlay manager portion of the 
 DDL manager depending upon the EMS and XMS options specified when creating
 the master .DDL file.

 As overlays are needed, they are loaded from the DDL files and fixed-up 
 to the proper addresses by the DDL manager.  Treat DDL files as overlay
 files, do not remove the program's access to them while it is executing.

 The DDL managers report any unresolved externals that may remain after 
 building the program and then terminate the process with a nonzero return
 code to indicate an error.  This will help you track down any errors in 
 building or specifying the .DDL libraries.  You cannot deliberately leave
 a symbol unresolved when using .DDL libraries as the DDL manager will 
 report the unresolved external as an error.  If you wish to provide subset
 capability to your program when using DDLs, then you should stub out any 
 symbols or routines with a dummy reference or return, so that they do
 not cause an unresolved external error.

 WarpLink supports a DDLPATH environment variable.  This environment variable
 allows you to specify the location of .DDL files at runtime.  When a program
 using dynamic libraries begins execution, the DDL manager will look for the
 .DDL files in the current directory.  If the DDL manager does not find the
 necessary .DDL files, it will search the path or paths specified by the
 DDLPATH environment.

 Notes:

  Do not link in the overlay manager files, OVLMGR.OBJ, CNOVLMGR.OBJ, or 
  C5OVLMGR.OBJ when using .DDL files.  The DDL manager file contains its
  own overlay manager routines.  Linking in an unnecessary overlay manager file
  will simply increase your memory and file size overhead.

  Do not use the /op option with the minus sign (-) setting with DDLs.
  You must either use an explicit overlay pool size (/op:size) or the
  minimum overlay pool setting (/op:m).

 Version Note:

 Unlike previous versions of WarpLink, the DDL managers will perform
 as many search passes as necessary on the master and support DDL files
 to resolve all symbol references in the program as it is built.  This
 makes the order of DDL specification much less critical, allowing a
 .DDL module to reference a symbol resolved by a module in a
 previously searched .DDL file.


 Clipper 
 User Note

 Clipper users should note that the dynamic library managers currently do
 not perform automatic Clipper symbol table compaction.  You may wish
 to create .CLP files when creating object modules to reduce the number
 of duplicate symbols in your program when using DDLs.  Since
 WarpLink cannot know which modules are going into a program that
 uses DDLs until execution, it cannot pre-pack the Clipper symbol table.

 Clipper 5 
 User Note

 Clipper 5 users must use the /dm:C5DDLMGR.DAT option in order to use
 overlays within DDLs.  Use the default DDL manager file (DDLMGR.DAT)
 with Clipper 5 if overlays are not used.

 Clarion 
 User Note

 Clarion users must use the /dm:CNDDLMGR.DAT option in order to use overlays
 within DDLs.  Use the default DDL manager file (DDLMGR.DAT) with Clarion if
 overlays are not used.

See Also: ddl dm udl

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson