Can changes to a dll be made, while keeping compatibility with pre-compiled executables?

Your understanding is correct. So long as you change the logic but not the interface then you will not run into compatibility issues Where you have to be careful is if the interface to the DLL is more than just the function signatures. For example if the original DLL accepted an int parameter but the new DLL enforced a constraint that the value of this parameter must be positive, say, then you would break old programs.

Your understanding is correct. So long as you change the logic but not the interface then you will not run into compatibility issues. Where you have to be careful is if the interface to the DLL is more than just the function signatures.

For example if the original DLL accepted an int parameter but the new DLL enforced a constraint that the value of this parameter must be positive, say, then you would break old programs.

1 +1. And also vice versa, which is slightly trickier. Tf a return type is int, the old DLL always returned a positive value, and one of the EXE's expected this, the new DLL can't return a negative value.(Harder since you have to check all EXE's for assumptions, instead of just the old DLL.) These constraints are generally known as pre- and post-conditions.

– MSalters Sep 30 at 22:50.

This will work. As long as the interface to the DLL remains the same, older executables can load it and use it just fine. That being said, you're starting down a very dangerous road.As time goes by and you patch more and more DLLs, you may start to see strange behaviour on customer installations that is virtually impossible to diagnose.

This arises from unexpected interactions between different versions of your various components. This problem was known as DLL hell.In my opinion, it is a much better idea to rebuild, retest, and redistribute the entire application. I would even go further and suggest that you use application manifests to ensure that your executables can only work with specific versions of your DLLs.

It may seem like a lot of work now, but it can really save you a lot of headaches in the future.

We rebuild and release new versions of our software every couple of months or so. So this is really just a temporary fix until our next full release, so I think we can avoid dll hell in this case. Its much easier to replace 1 dll on a users system than it is to replace everything.

– animemastr Oct 3 at 16:04.

It depends in theory yes, if you load the dll with with LoadLibrary and haven't changed the interface you should be fine. If you OTOH link with the . Dll file using some .

Lib stub there is no guarantee it will work. That is one of the reasons why COM was invented.

5 There's no problem at all with using a . Lib stub so long as the DLL interface has not changed. COM was invented for altogether different reasons.

– David Heffernan Sep 30 at 19:20.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions