Visual C++ 应用程序无法在 Windows 7 上运行
Visual C++ application won't run on windows 7
我正在使用Visual Studio Community 2015,我编写了一些简单的Win32演示应用程序,该应用程序应该从互联网下载文件并执行两个HTTP GET请求。
我正在使用InternetOpenA
、InternetConnectA
、HttpOpenRequestA
、URLDownloadToFile
等函数。
我在设置中唯一更改的是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。
我过去曾使用依赖 walker 来诊断 dll 依赖关系。希望这是一些愚蠢的东西,比如缺少 32 位或 64 位运行时。
正如 Keith 在他的回答中建议的那样,您还可以尝试静态链接 vc 运行时(C++/Code Generation/Runtime Library 下的/MT[d](,这样它就不需要将运行时作为 dll 加载。请注意,这不是推荐的选项,因为如果 VC 运行时已刻录到可执行文件中,则 Windows 更新无法修补它。
- Windows运行时组件C 结构/类返回到UWP
- 如何在静态库中引用Windows运行时类
- visual在源代码中是否有预定义的#define或其他方式来了解它是为C++/CX Windows运行时编译的
- Windows 运行时 (WP 8) 进程外组件和引发/订阅事件
- 重写 Windows 运行时组件中的 ToString
- Windows运行中的目录搜索工作原理
- 如何从用C#编写的类库中引用用C++编写的Windows运行时组件
- 如何在方法中将自定义 WinRT 类型从 c# 传递到 c++ Windows 运行时组件
- 尝试在 Windows Phone 静态库项目 (C++) 中使用 Windows 运行时扩展
- C# / C++应用程序在从Windows运行时崩溃,但不是从Visual Studio
- 从 C# 加载C++ Windows 运行时组件时出现异常
- 在Windows运行时组件中使用WRL获取文件夹路径返回空字符串
- 在Linux中编译的程序;t检测'n'在Windows运行时所在的fstream中换行
- 压缩库Windows运行时
- WACK测试在Windows运行时元数据验证上失败
- Windows运行时库依赖和纯C代码
- visual studio 2015-UWP C#应用程序调用用C++编写的Windows运行时组件
- windows运行时-{c++}程序在没有visual Studio的计算机上运行时会发送错误0xc00007b
- 使用Python代码从Windows运行命令
- windows 7运行qt终端