I have an MFC Extension DLL which exports a C++ class, and I need to modify the behavior of a class method. The changes don’t affect the signature of methods of the class.
I don't want to recompile the modules that used the "lib" file of the previously released version of this library.
What happens if the changes modify the entry points address of the functions?
For example, the address of the constructor changed:
Export Ordinal Function Hint Entry Point
[+ ] 3 (0x0003) 2 (0x0002) ??0CLangManager@@QAE@XZ 0x00009CB0 (OLD DLL)
[+ ] 3 (0x0003) 2 (0x0002) ??0CLangManager@@QAE@XZ 0x00009760 (NEW DLL)
Should I recompile the modules that use the library anyway?
I tested the recompiled library - with new entry points - using the released executables and everything works fine. I'm not sure that this scenario is hiding some side-effects.
When is it necessary to recompile an executable linking to a DLL?
When does the binary compatibility get broken?