我对所有这些 SDK Windows 版本有点迷茫。
例如,我在 windows8.1 上安装了 vs2013,并且我(还)需要将我的应用程序与 vs2008 运行时(平台工具集)链接起来。
我应该安装整个 VS2008 还是只安装 API。在最后一种情况下,我必须安装什么 SDK?
我对所有这些 SDK Windows 版本有点迷茫。
例如,我在 windows8.1 上安装了 vs2013,并且我(还)需要将我的应用程序与 vs2008 运行时(平台工具集)链接起来。
我应该安装整个 VS2008 还是只安装 API。在最后一种情况下,我必须安装什么 SDK?
你在谈论两个非常不同的事情。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 依赖项的库。如有必要,请联系图书馆所有者以获取更新。