【发布时间】:2009-03-28 18:21:29
【问题描述】:
如何使用 Visual C++ 2008 进行编译并链接到旧版本的 C 运行时(我想要版本 7 而不是 9)?
【问题讨论】:
如何使用 Visual C++ 2008 进行编译并链接到旧版本的 C 运行时(我想要版本 7 而不是 9)?
【问题讨论】:
我认为您需要做的是为您的项目找到 Linker -> Input 属性页,并告诉它专门忽略 msvcrtd.dll / msvcrt.dll,然后显式链接到您想要的版本(完整路径)。不知道如果他们有相同的名字会发生什么......
【讨论】:
VS 只是一个 IDE。您可以使用它来构建旧工具集,但需要进行一些调整 - 您需要安装两个并排的 VS 安装(例如 VS2008 + vs6)并加载不同的 VSARGS。请参阅来自 Bojan Resnik 的出色 step by step。
请注意,在 VS2010 中,此解决方案不适用 - 它有一个新的每个项目设置->常规->“平台工具集”。 如果需要,安装this 并手动更新项目设置->VC++ 目录(或手动更改默认settings)。
【讨论】:
我认为微软明确表示“不要这样做”。问题是,msvcrt.dll 现在被认为是操作系统的一部分,而不是任何特定应用程序的一部分,也不是可再分发的。 MS 可能会使用 Service Pack 对其进行更新,并且可能会显着改变行为,就像他们对 XP SP2 所做的那样。这会破坏应用程序!所以...Don't Do It。
【讨论】: