Patent ID: 7047537

Claim:
A computerized method of linking a set of code modules for execution, comprising: determining one or more code modules to be executed, wherein the one or more code modules are one or more DLLs; ascertaining a hierarchical order in which the one or more code modules are to be executed; loading the one or more code modules to be executed; and building a chain connecting the one or more code modules such that the one or more code modules will automatically execute in the hierarchical order when a first one of the one or more code modules is executed, wherein each of the code modules responsible for calling a next one of the code modules in the chain includes a reference to the next one of the code modules in the chain, wherein an address in memory at which the next one of the code modules in the chain is loaded is associated with the reference to the next one of the code modules in the chain, wherein the chain does not include a main program and wherein building a chain enables the one or more code modules to execute without requiring a main program responsible for calling the one or more code modules; wherein building a chain connecting the one or more code modules comprises: obtaining the first one of the one or more code modules, wherein the first one of the one or more code modules has previously been loaded; determining whether the first one of the one or more code modules is to subsequently execute a second one of the one or more code modules upon completion of execution of the first one of the one or more code modules, wherein the second one of the one or more code modules has previously been loaded; when it is determined that the first one of the one or more code modules is to subsequently execute a second one of the one or more code modules, updating a branch table of the first one of the one or more code modules to identify an address at which the second one of the one or more code modules is loaded such that the reference to the second one of the one or more code modules in the branch table of the first one of the one or more code modules is associated with the address at which the second one of the one or more code modules is loaded.