[Lazarus] "Running" a library

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Sat Sep 15 14:32:43 CEST 2012


Sven Barth wrote:

>>>> You are able to define exports from a program. And you can also load
>>>> the program binary using LoadLibrary from a library that is already
>>>> loaded from that program (because the entry point is not called then),
>>>
>>> I'm already calling from a loaded library back into the calling program
>>> using that technique. What happens if a library tries to load a
>>> /different/ program: is the main entry point called and are the
>>> subsidiary entry points available?
>>>
>>
>> I currently only have one answer for that: try it and see what happens.
> 
> I have now checked ReactOS' code: if you load an exe that is not the 
> main executable then the entry point won't be called at all. So it seems 
> that you can load such executables and call functions from them, but in 
> the case of FPC you might be screwed (or at least very restricted) as 
> the initialization sections of the units won't be run (this includes the 
> system unit which initializes the heap, io, etc.).

Thanks for that, I'm currently looking at the situation on x86 Linux 
since I think it's worth progressing this while the thread's fresh.

The fact that the heap etc. wouldn't be initialised had already occurred 
to me. Is there any way to fake this?

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list