So, by default ALL DLL's have the same base-addresses for code and data. So if an application loads two DLL's, it will have to move at least one of those DLL's to a different location.
If you give a different base address to each of the DLL's that are part of your project, the OS doesn't have to go about translating the memory addresses in the DLL to a different address. You do this by the /BASE option in the linker:
http://msdn2.microsoft.com/en-us/lib...8s(VS.71).aspx
Most, if not all "standard" DLL's already have random DLL base addresses.
The performance impact only applies when the load of the DLL occurs, so normally during program start. As the original link says, it's often best to reduce the number of DLL's, as there is a fixed overhead for loading the DLL itself, in addition to a variable, but smaller, amount of overhead per byte of DLL content.
--
Mats