This is the mail archive of the
mailing list for the Cygwin project.
Re: Building plugin that is used from multiple executables
Jani Tiainen schrieb:
Maarten Boekhold wrote:
Suppose I have a plugin library that contains calls that reside in the
executable that dlopen()'s that plugin. You can link such a plugin by
using a .def file that contains something like:
symbol = executable.exe.symbol
Now if I need to be able to use the *same* plugin from *two*
executables, how do I resolve that??? Can I use a .def file that
symbol = executable_1.exe.symbol
symbol = executable_2.exe.symbol
My gut feeling says 'no', but hope against hope...
Well, shortly... You can't do that. Since windows exports are binded to
name of library (application) and symbol...
Long way: You can do it, but you need to take alternative route.
You need one extra DLL that has imports symbol from executable and
ex-exports symbol you need forward to plugin:
for plugin you need to do following:
symbol = helper.dll.symbol
and for both apps you create own helper.dll:
app1.exe create helper.dll:
symbol = app1.exe.symbol
app2.exe create helper.dll:
symbol = app2.exe.symbol
Or even better, DTRT in windoze world is to pass needed symbol pointers
as arguments to plugin function, since windows libraries and
applications doesn't allow unresolved symbols in linktime (so called
(intermediate dll, which dlopen's dependent on
various issues another dll. platform, release, required feature se:
resolve at run-time. as soon as it will be added to ld.
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html