in reply to [OT][Win32] How to load the right dll

So ... is there some trick I can use to force Minuit.dll and Slatec.dll to load the libgcc_s_sjlj-1.dll that sits next to them, instead of using the libgcc_s_sjlj-1.dll that Strawberry perl has already loaded ?

The answer is "yes" - and it turns out to be a very simple trick, which comes courtesy of Mark Dootson (again):

Firstly rename libgcc_s_sjlj-1.dll to something that has the same number of characters (eg libgcc_sis__470.dll).
Secondly, in Slatec.dll and Minuit.dll
s/libgcc_s_sjlj\-1\.dll/libgcc_sis__470\.dll/g
That done, and as long as Slatec.dll and Minuit.dll can find libgcc_sis__470.dll, there's no problem.

I don't know how that sort of fix sits with others - but it fits right in with the way I like to do things.

Mark did say he had first tried solving the problem using manifests, but found that "that private manifests (load a dll from a specific location) only work at the whole application level" - which put an end to his endeavours with manifests.

Thanks for the inputs from BrowserUk and bulk88.
I feel bad when people put a lot of effort into helping me out with various approaches .... and then I go and use a completely different solution :-(

Cheers,
Rob

Replies are listed 'Best First'.
Re^2: [OT][Win32] How to load the right dll
by Anonymous Monk on Mar 21, 2012 at 06:16 UTC

    I feel bad when people put a lot of effort into helping me out with various approaches .... and then I go and use a completely different solution :-(

    Don't feel bad, your username was fair warning :)