Dynamic Class Loading Idea
Craig Black
cblack at ara.com
Mon Nov 5 06:28:33 PST 2007
"Bruce Adams" <tortoise_74 at yeah.who.co.uk> wrote in message
news:fgk1n1$et3$1 at digitalmars.com...
> Craig Black Wrote:
>
>>
>> "Bruce Adams" <tortoise_74 at yeah.who.co.uk> wrote in message
>> news:fgicuv$11j1$1 at digitalmars.com...
>> > Daniel Keep Wrote:
>> >
>> >>
>> >>
>> >> Craig Black wrote:
>> >> >> I like DDL's approach, in which it acts as a run-time linker. It
>> >> >> uses
>> >> >> relocation data in OBJ files to find address references and fix
>> >> >> them
>> >> >> (thus "relocating" the code for any memory address) when loading
>> >> >> the
>> >> >> libraries.
>> >> >
>> >> > Does this relocation use function pointers?
>> >>
>> >> Here's how I understand it. DDL is a linker. The only difference
>> >> between DDL and dmd/gcc is that it works at run time instead of
>> >> compile
>> >> time.
>> >>
>> >> What you described is basically what a linker does, hence what DDL
>> >> does.
>> >>
>> >> -- Daniel
>> >
>> > Its also what an operating does to load dynamic link libraries or
>> > shared
>> > objects.
>> >
>>
>> Right, but the operating system does not do this when loading dll's or
>> so's
>> at run-time.
>>
>
> It depends on the operating system but generally yes it does. On some
> systems libraries are only loaded when they are first needed. On others
> they are loaded whent the program starts. And then there's usually a
> runtime API of some sort. LoadLibrary and GetProcAddress on windows. Those
> only half count because their too low level.
>
> I don't know much about DDL is it OS specific or portable?
>
I think you are talking about delay loaded libraries. I'm talking about
libraries that are loaded as plug-ins via LoadLibrary. In this case linking
is done with something like GetProcAddress which provides a function
pointer.
More information about the Digitalmars-d
mailing list