I wasn't sure which forum to ask this in, but this is more an architecture question than anything. I'm pretty sure the answer to this question, but I wanted to ask the community at large for a second and third opinion.
We have a project we are working where the interface between two systems is through an EXE that runs on both sides, we'll call them System 1 & 2. System 1 provides the exe and a DLL to System 2 so that it can communicate to System 1. We don't have rights to the source code for the exe, but we can change the DLL.
We're looking to re-do System 1, but we'd like to make the impacts to System 2 as minimal as possible, i.e. none. If we kept the DLL API the same, i.e. not change the function prototypes, just change the backend. Would System 2 need to be re-compiled?
The DLL happens to not be a COM assembly, just an unmanaged DLL. We'd be changing the back end logic of the DLL significantly, so I would assume the answer would be yes, but I wanted another opinion.
Should be fine to modify a dll without recompiling the exe that calls it. I've done that before with minor changes.