Re: DLL address space and plugins
On Jun 12, 3:35 pm, Chris <chrismc...@hotmail.com> wrote:
Of course, just mentioning those issues and where they come
from may be viewed as within ?++ realm, and therefore on
topic here...
to make sure people are not confused: my question is not platform
specific. Nearly any platform can load libraries, invoke function
calls on those, etc. Let it be Windows with LoadLibrary or Linux with
dlopen, I don't care. My question is more a design problem I encounter
on how to design a plugin system.
Generally: I have a base-system and plugins. The base-system loads
plugings. The plugins need some functionality that lies in the base-
system. Can it be done this way? Any cleaner ideas?
How is this done in other projects that allow addons/plugins?
Obviously the addons in Mozilla Thunderbird access the base-system,
too. So there is a circluar access.
There are ways under Windows, and ways under Unix, but they are
completely different. You'll have to ask in the appropriate
group for each system you're interested in.
By the way, I found a document on open-std.org that describes
ideas about a plugin system in the C++ language coming from
the "Modules & Libraries" subgroup which works in the "C++
Modules" working group.
There has been on-going work on a module system in C++, which
would also support plug-ins. For the moment, I think, it is
just that: on-going work, and I don't think it will make it into
the next version of the standard. There are also people
concerned with dynamic loading in particular, and they may have
a stop-gap measure for that, which might make it into the next
standard.
--
James Kanze (GABI Software, from CAI) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34