繁体   English   中英

Visual C ++应用程序无法在Windows 7上运行

[英]Visual C++ application won't run on windows 7

我正在使用Visual Studio Community 2015,并且编写了一些简单的Win32演示应用程序,该应用程序应从Internet下载文件并执行两个HTTP GET请求。

我正在使用InternetOpenAInternetConnectAHttpOpenRequestAURLDownloadToFile等功能。

我在设置中所做的唯一更改是将平台工具集更改为Visual Studio 2013(v120),并且我的targetver.h文件如下所示:

#pragma once

// Including SDKDDKVer.h defines the highest available Windows platform.
// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.

#include <WinSDKVer.h>

#define WINVER 0x0600
#define _WIN32_WINNT 0x0600 

#include <SDKDDKVer.h>

但是,它在我的Windows 10计算机上运行,​​但不在Windows 7上运行。它说:缺少MSVCR120.dll文件。 我可以安装适当的C ++可再发行组件,但这不是我需要的解决方案。

编译时是否还需要包含其他选项,以避免出现此错误?

为了避免您的应用程序需要单独的运行时DLL,请在项目设置中查看以下内容:

C / C ++>代码生成>运行时库

然后选择多线程而不是多线程DLL。

您不需要更改平台工具集。

在我的项目中,我使用VS 2017进行编译,并希望一直运行到Vista,我的工作与您相同,但是没有第一个#include <WinSDKVer.h> 我只是将_WIN32_WINNT宏设置为0x0600 ,到目前为止,它工作正常。

如果有帮助,我以Windows 8.1 SDK为目标,并使用MFC。

我过去曾使用过依赖行者来诊断dll依赖项。 希望它像32位或64位运行时丢失一样愚蠢。

正如keith在他的回答中所建议的那样,您还可以尝试静态链接vc运行时(C ++ /代码生成/运行时库下的/ MT [d] ),以便它不需要将运行时作为dll加载。 请注意,这不是推荐的选项,因为如果Windows Update被刻录到可执行文件中,则VC运行时将无法通过Windows Update进行修补。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM