Mail Archives: cygwin/2004/10/06/08:52:07
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:
>>
>> IMPORTS
>> 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
>> contains:
>>
>> IMPORTS
>> 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:
>
> IMPORT
> symbol = helper.dll.symbol
>
> and for both apps you create own helper.dll:
>
> app1.exe create helper.dll:
> IMPORT
> symbol = app1.exe.symbol
>
> EXPORT
> symbol
>
> app2.exe create helper.dll:
> IMPORT
> symbol = app2.exe.symbol
>
> EXPORT
> symbol
>
> And finally...
>
> 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
> backlinking issue)...
hmm,
stubs:
(intermediate dll, which dlopen's dependent on
various issues another dll. platform, release, required feature se:
pro/basic, language)
lazy linking:
resolve at run-time. as soon as it will be added to ld.
--
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban/
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -