I have a super-basic question about how calls to DLLS work in Windows - If there are 2 DLL versions installed on the same Windows system (say, MSXML 4.0 and 6.0) and they are both registered, assuming the 4.0 and 6.0 version dlls both support some same function call, how does Windows internally route the call? IE, is the convention to hand it to the newest version? Or the last registered version? or something else?
Related: Generally speaking, if you craft application code to explicitly use the 4.0 version, how does it achieve this, if a newer DLL implements the same call?
Thank you!
This isn't about calling conventions, which means something else entirely.
With ActiveX DLLs you create class instances by their ClassID or ProgID. These are normally looked up in the type library during development or at compile time, or hard-coded into the calling source code. There are version independent ProgIDs and version specific ProgIDs.