1

我对所有这些 SDK Windows 版本有点迷茫。

例如,我在 windows8.1 上安装了 vs2013,并且我(还)需要将我的应用程序与 vs2008 运行时(平台工具集)链接起来。

我应该安装整个 VS2008 还是只安装 API。在最后一种情况下,我必须安装什么 SDK?

4

1 回答 1

3

你在谈论两个非常不同的事情。Windows SDK 仅涵盖进行 winapi 调用所需的声明和库。SDK v8.1 适用于自 Vista 以来的任何现代 Windows 版本,您可以通过设置 _WIN32_WINNT 宏来选择要定位的 Windows 版本。请注意,XP 需要较旧的 SDK 版本,v7.1 是最后一个仍然适合并通过将 Platform Toolset 设置为 v120_xp 来选择的版本。

运行时库是 Visual Studio C/C++ 项目的纯实现细节,与 SDK 完全无关。当您使用 /MD 编译选项在 VS2013 上构建这样的程序时,它将依赖于 msvcr120.dll,可能还有 msvcp120.dll 等。这些 DLL 实现了 C 运行时库和 C++ 标准类。如果您使用这些库,可能还有 MFC、ATL、OpenMP 和 AMP。

如果您仍然依赖于这些库的 VS2008 版本,那么您可能会遇到非常大的问题。您可以从可从 Microsoft 下载的 redist 安装程序获取这些 DLL 的发行版本。依赖调试版本需要在您的机器上安装 VS2008。但是由于新的 C++11 语言标准,VS2008 和 VS2013 之间的运行时库发生了很大的变化,因此在运行时连接程序和痛苦是非常明显的。在一个程序中拥有多个 CRT 通常会造成很多麻烦。

您需要强烈追求重新构建仍然具有 VS2008 依赖项的库。如有必要,请联系图书馆所有者以获取更新。

于 2013-10-19T13:17:43.590 回答