Dirk et al,

Does this overlap with the discussion from a few months ago about a 
plugin system? 

See: http://opensg.vrsource.org/trac/wiki/Dev/PluginsPathes

Did anyone ever start trying out some of these ideas?

-Allen

Aron Bierbaum wrote:
> After doing more research into this problem, I think I know what is
> going wrong. According to the Dependency Walker documentation there
> are 5 different types of module dependencies.
>
> 1. Implicit Dependency (also known as a load-time dependency or
> sometimes incorrectly referred to as static dependency): Module A is
> implicitly linked with a LIB file for Module B at compile/link time,
> and Module A's source code actually calls one or more functions in
> Module B.  Module B is a load time dependency of Module A and will be
> loaded into memory regardless if Module A actually makes a call to
> Module B at run-time.  Module B will be listed in Module A's import
> table.
>
> 2. Delay-load Dependency: Module A is delay-load linked with a LIB
> file for Module B at compile/link time, and Module A's source code
> actually calls one or more functions in Module B.  Module B is a
> dynamic dependency and will only be loaded if Module A actually makes
> a call to Module B at run-time.  Module B will be listed in Module A's
> delay-load import table.
>
> 3. Forward Dependency: Module A is linked with a LIB file for Module B
> at compile/link time, and Module A's source code actually calls one or
> more functions in Module B.  One of the functions called in Module B
> is actually a forwarded function call to Module C.  Module B and
> Module C are both dependencies of Module A, but only Module B will be
> listed in Module A's import table.
>
> 4. Explicit Dependency (also known as a dynamic or run-time
> dependency): Module A is not linked with Module B at compile/link
> time.  At runtime, Module A dynamically loads Module B via a
> LoadLibrary type function.  Module B becomes a run time dependency of
> Module A, but will not be listed in any of Module A's tables.  This
> type of dependency is common with OCXs, COM objects, and Visual Basic
> applications.
>
> 5. System Hook Dependency (also known as an injected dependency): This
> type of dependency occurs when another application hooks a specific
> event (like a mouse event) in a process.  When that process produces
> that event, the OS can inject a module into the process to handle the
> event.  The module that is injected into the process is not really a
> dependent of any other module, but does resides in that process'
> address space.
>
> It appears to me that currently when I link my application against
> FileIO.lib and ImageFileIO.lib I am creating a Delay-load dependency.
> So because the user will never call any functions in either of these
> libraries, there are not loaded into memory. If this is correct then
> we need to either create an Implicit Dependency, which I have no idea
> how to do, or start using a more traditional plugin architecture and
> an explicit dependency.
>
> Does anyone that might know more about this have anything to add? Does
> anyone know how to create an implicit dependency? How do people feel
> about a more traditional plugin system that would search a directory
> on disk calling LoadLibrary on each file in
> path/to/opensg/lib/plugins? I personally would like to get away from
> relying on static data initialization in order to do plugin
> registration. So for example each plugin would define a C function
> call that returns an instance of it's internal image/model loading
> class. Then we could load each library in a plugin directory, look for
> the correct symbol, and then explicitly get a reference to an image
> loader.
>
> Thanks,
> Aron
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Opensg-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensg-users
>
>   


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to