Multiple CRT Solution

I know that there are several similar questions, but I do not think that they really have the same requirements as mine.

Our DLL was compiled using Visual Studio 2005 and must with a specific version of CRT due to installation restrictions. This is absolute, recompiling with the latest version is not a solution.

We recently updated our Boost libraries. However, when I built Boost, it automatically used the latest CRT. Now, when I associate Boost with our program, it creates a dependency on both the latest (incorrect) version of CRT and the old (correct) version of CRT. Dependence on the latest version should go.

What is the best solution to this problem? Right now, the best I can think of is rebuilding Boost using the old version, but I don’t know how easy it is to do this without changing the source.

If there was a way to get Visual Studio to use a specific version of CRT around the world (not for every project), that would be great. Or just simply uninstall the latest version of CRT, but I’m sure it’s not possible, since I believe that this is part of the OS.

+3
source share
3 answers

The solution was to manually modify the built-in manifest to remove dependency on the latest CRT, as it is built with dynamic CRT communication. I doubt the safety of this.

- , targetxs Boost, CRT.

+3

AFAIK, CRT. .NET, DLL.NET 1.1 DLL.NET 2.0, Unmanaged ​​.

DLL , CRT, , , Boost VS2005.

DLL CRT. , .

. Visual Studio CRT , DLL.

" CRT". Visual Studio Redist Visual Studio, . ( redist DLL CRT) http://msdn.microsoft.com/en-us/library/abx4dbyh%28VS.80%29.aspx

+5

, boost CRT / . - .vcproj - - .

VC ++ 2005 and VC ++ 2008 CRT contain more or less the same primitives - you can probably completely recompile boost with VC ++ 2005 or change it a bit and recompile after that. Yes, this will take some effort, but this is the only way - both your code and the promotion code must be compiled against the version of CRT that you want to use.

0
source

Source: https://habr.com/ru/post/1735960/


All Articles