我刚刚用C++开发了我的第一个程序,我想和我的一个朋友一起展示它.可悲的是,当他试图打开exe时,会收到一条错误消息"MSVCP140.dll缺失".为什么会出现这个问题?他/我如何解决这个问题?
首先:我正在使用Microsoft Visual Studio 2012
我是C#/ Java开发人员,现在我正在尝试使用Microsoft SDK和C++为kinect编程.所以我开始使用Color Basics示例,我无法编译它.起初,没有一个类能够找到Windows.h. 所以我安装了(或者重新安装,我不确定)Windows SDK,并将SDK的include目录添加到项目的包含"路径"中.然后所有问题都消失了,除了一个:
Error 5 error RC1015: cannot open include file 'windows.h'. C:\temp\ColorBasics-D2D\ColorBasics.rc 17 1 ColorBasics-D2D
Run Code Online (Sandbox Code Playgroud)
这就是错误.没有理由,系统可以找到它,因为它被用在多个其他文件中,只有这个文件无法使用它.作为参考,整个文件是bugging(ColorBasics.rc):
//------------------------------------------------------------------------------
// <copyright file="ColorBasics-D3D.rc" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || …Run Code Online (Sandbox Code Playgroud) 结束的平台工具集_xp和不结束的平台工具集之间有什么区别.(例如,v140vs v140_xp)
为什么没有以_vista或结尾的工具集_7?当我使用该v140工具集在Windows 7上编译程序时,它是否可以在Windows XP/Vista上运行?
我们正在迁移到 Visual Studio 2017 和 VS2017 提示我们重新定位项目的两个方面:Windows SDK 版本和平台工具集。
目前我们的应用程序可以在较旧的 Windows 版本上运行(至少到 Server 2003,可能更旧),我们需要保留相同的版本(我知道它们不再受支持,但这是客户的要求)。
假设我们的代码(全是 C++,以防万一)不使用任何仅在较新版本的 Windows 上可用的 API,将重新定位到较新版本的 Windows SDK 限制或限制 Windows 的版本我们的应用程序将继续运行?
在这个主题上,重新定位到较新版本的 Windows SDK 有什么优点或缺点(例如性能)(同样,假设我们不使用任何仅在较新的 Windows 上可用的新 API) ?
我试图编译Windows XP的应用程序; 正常的可执行文件给出错误:
"... 不是有效的Win32应用程序."
我读到我可以通过更改Platform Toolset来创建与XP兼容的可执行文件Visual Studio 2015 - Windows XP (v140_xp),但是当我这样做然后尝试编译它时会给我以下错误:
无法打开包含文件:'Windows.h':没有这样的文件或目录
无法从注册表中找到WindowsSdkDir_71A变量.TargetFrameWorkVersion或Platform工具集可能设置为无效的版本号.
如何使用此工具集版本进行编译?