您可能知道,Visual Studio 2005 的更新是上周在大多数机器上自动更新的。此更新包括新版本的 Visual c 运行时库。因此,更新后构建的任何二进制文件也需要在客户端系统上安装新的可再发行组件。
请参阅http://support.microsoft.com/kb/971090/
这是新的可再发行组件的安装程序:
这对于向客户分发新的二进制文件来说很好,我将使用安装程序发送新的可再分发文件,并且一切正常。
但是,如果他们发现错误,我真的很担心我修复现有客户站点的能力。在这种情况下,通常我只会发送已修复的 dll 或 exe。
但是,如果我现在这样做,我将不得不向这些客户发送新的可再发行组件,现在我将在同一个可执行文件中使用两个不同版本的 c 运行时库。
- 这是一个问题吗?
- 这会导致我的应用程序崩溃吗?
- 如果我在一个 dll 中分配内存然后在另一个 dll 中释放它会发生什么?通常,如果使用相同的发布运行时库,这将起作用。大约 3 年前,我浏览了我们的代码来清理它,但我不能确定我已经找到并修复了所有出现的问题。
- 不同dll中的分配/解除分配仍然是一个问题吗?现在,在智能指针等时代,必须强制执行这一点。
- 我可以通过更改清单来控制我依赖的运行时库版本吗?
任何指示或建议将不胜感激。
更新:我刚刚注意到这个问题 VC++: KB971090 和选择 Visual C Runtime DLL dependencies 这非常相似,但我的问题更关心在一个可执行文件中使用两个不同版本的运行时。