while VS2008 is still on version 9.0.21022.8
This is not the case, your #includes and CRT libraries actually upgraded to 9.0.30729.4462 when you installed the hotfix / service pack / fix pack.
Open vc / include / crtassem.h to view the macro soup. The value of the _BIND_TO_CURRENT_CRT_VERSION macro, which is valid when compiling the code, is important. When set to 0, you will declare a dependency on the original RTM version of CRT (9.0.21022.8). With fingers crossed behind, Microsoft has not made any changes to the CRT that will destroy your code when it runs on a machine that has a publisher policy that is redirected to a later version of CRT.
With a value of 1 set, you will declare a dependency on the version of CRT on which you actually tested your code with the one installed on your dev machine. This is a more reasonable thing. Despite the fact that Microsoft ran into some problems to ensure that the service fixes on the CRT didn’t break anything, I never heard of a case where this happened.
What the linker warning is trying to tell you, ever so clumsy, is that you are trying to link code that was compiled with _BIND_TO_CURRENT_CRT_VERSION set to 0, with code that was compiled with it equal to 1. Which, of course does not make sense; you cannot have it in both directions.
Correct the compiler settings, they should be the same for all the code that you specified.
source share