I have 2 dlls impl1\A.dll and impl2\A.dll that (have the intent to) implement interface I for 2 different target environments. Lib files are stored in impl1\A.lib and impl2\A.lib respectively. I also have E.exe that uses interface I and that is compiled and linked against impl1\A.lib.
To run E.exe I copy E.exe and, depending on the target environment, either impl1\A.dll or impl2\A.dll to the target bin directory. E.exe will run successfully.
In above scenario I expect the 'dumpbin /exports' output for impl1\A.lib and impl2\A.lib to be the same. And this is indeed the case.
Statement 1: If 2 dlls implement the same interface then their dumpbin outputs are equal.
Statement 2: If 2 dlls have the same dumpbin outputs then these dlls implement the same interface.
Question: are above statements true?