tags:

views:

74

answers:

2
A: 

I'd get rid of the old Dll, or use another name for the new dll. Having two versions of something that is supposed to do the same, and giving it the same name, is likely to cause havoc.

stijn
The whole point of DLL's is that you can have a default one. Then as newer ones are released you use the same name so that old code picks up the newer version. But if there is an incompatibility you can still use the old one. Unfortunately it led to a whole series of other problems known as "DLL Hell"
Martin York
Exactly, it is DLL Hell. B.dll is legacy component which can't be renamed.
Dmitry
A: 

DLL Hell on SO

Well, it's kind of cool in a retro sort of way. Here is a thought: try copying rundll32.exe into the same folder as the new dll's and your product, and run it from there. It might work...

DigitalRoss
Yes, it works. But it's too heavy solution from my point of view. It would be perfect if I could execute rundll32.exe from its original folder.
Dmitry
Additional nastyness: When the next SP is released and System32\Rundll32.EXE is updated, your copy will become outdated and may fail in many "interesting" ways. And I'd hope virusscanners would also consider it suspect.
MSalters