Am 09.08.2013 11:32, schrieb Lukasz Sokol:
(OT) (On a side note to the runtime packages, some years ago I had to
look for and indeed I came on someone's 'plugin system' for delphi (7)
that ran with .dll (as opposed to .bpk where it usually is possible)
and could add forms to your main application at runtime... needless to
say, it was a paid-for (and IIRC with NDA attached) system;
But I was /under impression/ that it would be as easy as having
same memory/heap manager instance for main program and for dll
(of which some were open source), and that was the main hurdle too,
and passing the Application instance into it by using some Interfaces,
and the dll capabilities back in the same manner;
but before I had time to get /less/ inept on Interfaces, the demand
  for this feature has ended...
so I can't really remember anything else out of that area, sorry.
It's not only the memory that needs to be shared. All DLLs need to use the same RTL functions and the VMT pointers need to be equal as well. If you have two DLLs and both use TObject than for a TObject variable of DLL A "is" is not true for a TObject from DLL B. This is what runtime packages solve correctly (in addition to dependency loading, etc).

Regards,
Sven
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to