gpt4 book ai didi

c - 解决多个 CRT 问题

转载 作者:太空狗 更新时间:2023-10-29 16:00:00 24 4
gpt4 key购买 nike

我知道有几个类似的问题,但我不认为他们真的和我有相同的要求。

我们的 DLL 是用 Visual Studio 2005 编译的,由于安装限制,必须链接到特定版本的 CRT。这是绝对的,用最新版本重新编译它不是解决办法。

我们最近更新了我们的 Boost 库。但是,当我构建 Boost 时,它会自动使用最新的 CRT。现在,当我将 Boost 与我们的程序链接时,它会同时依赖于最新(错误)版本的 CRT 和旧(正确)版本的 CRT。需要去除对最新版本的依赖。

这个问题的最佳解决方案是什么?目前,我能想到的最好办法是使用旧版本重建 Boost,但我不知道如何在不修改源代码的情况下轻松地做到这一点。

如果有一种方法可以强制 Visual Studio 在全局范围内(而不是在每个项目的基础上)使用特定版本的 CRT,那就太好了。或者只是简单地删除最新版本的 CRT 的方法,但我很确定这是不可能的,因为我认为它被认为是操作系统的一部分。

最佳答案

据我所知,不建议使用不同版本的 CRT。与可以从 .NET 2.0 dll 引用 .NET 1.1 dll 的 .NET 不同,Unmanaged 不提供这种灵 active 。

由于您无法升级您的 dll 以使用更新的 CRT,您唯一能做的就是在 VS2005 中重建 Boost。

也不建议链接两个不同 CRT 的 dll。它可能会导致内存损坏等问题。

注意:每个 Visual Studio 都有其所有 dll 引用的默认 CRT 版本。

我也不明白“删除新的 CRT”。您将需要为您使用的每个 Visual Studio 版本安装 Visual Studio Redist。 (该 redist 包含 CRT dll) http://msdn.microsoft.com/en-us/library/abx4dbyh%28VS.80%29.aspx

关于c - 解决多个 CRT 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2402939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com