VS2022 支持XP

Windows XP 部署 高版本的VisualStudio运行库 由于缺少对 SHA-256 代码签名证书的支持,适用于 Visual Studio 2015、2017、2019 和 2022 的最新中不再提供对 Windows XP 的运行时库支持。Visual Studio 2019 版本 16.7 中随附有支持 Windows XP 的最后一个可再发行程序包。请使用文件版本以 14.27 开头的可再发行程序包。如果使用更高版本的可再发行程序包部署 Windows XP 应用或应用更新到更高版本的可再发行程序包,应用则不会运行。 阅读详情
AI摘要

本文详细指导如何在VS2022中修复针对XP系统的兼容性问题,涉及设置、组件安装、编译选项和依赖管理,如MFC和ATL的使用,预编译头配置,SSL头文件查找,以及ReSharper在依赖关系管理中的作用。

文章转载自

VS2022 支持XP-云社区-华为云

(null)不是有效的Win32应用程序

程序在古老的 32位 XP 系统下报错了 (null)不是有效的Win32应用程序
在这里插入图片描述

首先,检查 “解决方案配置” 是否设置为 Release + x86(编译成32位版本,是为了同时兼容32位和64位系统)
在这里插入图片描述

在 “控制面板” —> “程序和功能”,找到 Microsoft Virtual Studio Installer,右击选择 “修改”
在这里插入图片描述

然后选择 “单个组件”,搜索 XP,可以看到一条 “对 VS 2017(v141)工具的C++ Windows XP 支持 [已弃用]”,勾选并安装
在这里插入图片描述在解决方案资源管理器中,对每个项目,右击属性,修改配置属性。常规 —> 平台工具集 —> Visual Studio 2017 - Window XP (v141_xp)
在这里插入图片描述

该版本相关的SDK与编译工具,也要一并安装

  • MFC可以说是套界面库,主要构建于Win32 API之上
  • ATL主要是为COM而生的,是一套模板库,开发COM组件很方便

在这里插入图片描述

Spectre 缓解的官方文档如下,如果禁用了就不需要安装
https://docs.microsoft.com/zh-cn/visualstudio/msbuild/errors/msb8040?view=vs-2019
在这里插入图片描述

C2706 语法错误:此处出现意外的"标识符"; 应为"类型说明符"

在这里插入图片描述
符合性改进介绍
https://docs.microsoft.com/zh-cn/cpp/overview/cpp-conformance-improvements?view=msvc-170&viewFallbackFrom=vs-2017

如果代码在之前版本没问题,升级之后报上面错误。需要右击,选择属性 —> 配置属性 C/C++ —> 语言 —> 符合模式 —> 改成"否",就OK了
在这里插入图片描述
/permissive-:启用所有严格标准符合性编译器选项,并禁用大部分特定于 Microsoft 的编译器扩展(但有一些例外,比如 __declspec(dllimport))。 在 Visual Studio 2017 15.5 版中此选项默认为开启状态。 /permissive- 符合性模式包括对两阶段名称查找的支持

C1010 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “pch.h””?

在这里插入图片描述
错误原因是:编译器在寻找预编译指示头文件(默认#include"pch.h")时,文件未预期结束。没有找到预编译指示信息的头文件 “pch.h”

因为工程中的每个cpp文件属性默认都是使用预编译头(/YU)的,但是添加的第三方文件并没有 #include "stdafx.h"预编译指示头,所以编译器在此cpp文件中一直到末尾都没有找到它

在这里插入图片描述解决方案是,右键项目属性 —> 配置属性 —> C/C++ —> 预编译头 —> 将 “使用预编译头(/Yu)” 改成 “不使用预编译头”

无法打开包括文件

在这里插入图片描述
右键查看该项目的属性 —〉配置属性 —〉C/C++ ——〉常规 —〉附加包含目录

  • 工程根目录为:$(ProjectDir)
  • 其子目录inc为:$(ProjectDir)inc

在这里插入图片描述

_CRT_SECURE_NO_WARNINGS

在这里插入图片描述解决方案一

//屏蔽 scanf 或 fopen 函数的错误,代码中添加以下代码,要放到文件最上面!
#define _CRT_SECURE_NO_WARNINGS

  
 

在这里插入图片描述
解决方案二
在项目属性,预处理器中添加 _CRT_SECURE_NO_WARNINGS
在这里插入图片描述

找不到ssl头文件

在这里插入图片描述

这个问题首先需要安装 openssl,官网没有提供window的安装包,因此只能去第三方网站 http://slproweb.com/products/Win32OpenSSL.html 下载 msi 的安装包

安装好之后,目录结构如下
在这里插入图片描述

添加环境变量
在这里插入图片描述
在这里插入图片描述

Win+R,打开"运行"对话框,输入 openssl version ,打印出版本号说明路径设置正确
在这里插入图片描述

我这里 openssl 的安装路径为 C:\Program Files (x86)\OpenSSL-Win32

  1. 配置属性 —> C/C++ —> 常规 —> 附加包含目录,添加 C:\Program Files (x86)\OpenSSL-Win32\include\
  2. 配置属性 —> 链接器 —>常规 —> 附加库目录,添加 C:\Program Files (x86)\OpenSSL-Win32\lib\
  3. 配置属性 —> 链接器 —>输入 —> 附加依赖项,添加 libeay32.lib;ssleay32.lib

只生成部分项目

解决方案,整个项目的属性,对于测试,或者不用的项目,取消 “生成” 的勾选
在这里插入图片描述

Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

报这个错误,是因为把项目配置成了静态库 (.lib) ,但是却将运行库类型配置成 DLL,冲突了,所以报错
在这里插入图片描述

配置属性 —> 常规 —> 项目默认值 —> 配置类型
在这里插入图片描述

配置属性 —> C/C++ —> 代码生成 —> 运行库

  • 多线程(/MT)— “MFC的使用”:在静态库中使用MFC
  • 多线程DLL(/MD)— “MFC的使用”:在共享DLL中使用MFC
    在这里插入图片描述

获取设备唯一标识

wmic csproduct get uuid
wmic cpu get processorid
wmic diskdrive get serialnumber
wmic baseboard get version
wmic bios get Version
wmic bios get Manufacturer

  
 

在这里插入图片描述

ReSharper

C++的依赖关系,通常不够只管。ReSharper可以帮我们以图形化的方式展现依赖关系

下载地址如下:https://jetbrains.gallery.vsassets.io/_apis/public/gallery/publisher/JetBrains/extension/ReSharper/2021.3/assetbyname/JetBrains.ReSharper.web.exe?redirect=true&install=true

不过需要 “翻^Qiang”
在这里插入图片描述
我这边是C++,因此只要安装一个就好了在这里插入图片描述

如何构建一个支持 Windows XP 的 LIB/DLL/EXE 如何构建一个支持 Windows XP 的 LIB/DLL/EXE 最近把公司的一些大型跨平台 C++ Base 项目从 CMake 构建系统切换到了 Google 的 GN Build。进展都比较顺利,直到有客户需要一个支持 Windows XP 的动态库。。。 虽然马上就要 2022 年,距离 XP 的诞生已经超过 20 年,距离 XP 的废弃也超过 7 年了,但仍然架不住还是将近有 5% 的计算机运行着 XP (大陆地区甚至有 15% !),既然客户需要,那还是得支持 ????‍♂️ 实际上这个项 阅读详情

相关推荐

还在用Windows XP?手把手教你配置VS2022开发环境,让老系统跑上新程序

本文详细指导如何在Windows XP系统上配置VS2022开发环境,解决工业级遗留系统的开发挑战。通过安装特定组件、调整项目配置参数以及处理API差异,开发者可以在老系统上运行新程序,特别适合医疗、金融等关键基础设施的维护需求。

weixin_30879169的博客 466

vs2022 xp支持情况测试

4.2 如若用户不方便安装该运行库,那么就需要解决dll依赖问题,需要在已经安装的visual c++ 2017 x86的机器里和不安装的进行比对,然后提取,提取后,则不需要安装即可运行;4.1最简单的办法时安装visual c++ 2017 x86 运行库,如下图大约14兆,安装完后,exe则不需要任何依赖可直接运行(1、 若要vs2022支持xp,需要安装xp支持模块,如下图,单个组价,勾选xp支持,右边自动打勾,直接安装即可;3.1、C/C++,代码生成,运行库,改为/MT。

yanchenyu365的博客 3904

win10系统下vs2015编写的C++程序在XP系统里运行

虽然目前很多用户的电脑系统都是win7到win10,但还有部分用户的电脑系统是xp,比如一个项目要兼顾到xp用户,而通常编写的vs2015程序在xp里并不能运行,先做一个如下测试,使用vs2015创建一个C++控制台程序,代码很简单,如下所示: 生成这个程序,将得到的test1.exe复制到xp系统里,然后运行,效果如下: 在xp系统里会弹出提示不是有效的win32位程序,那么该如何解决这个问题了? 打开工程属性,在常规里将平台工具集改成Visual Studio 2015 - Windows XP (

Keras深度学习 7万+

VS2022+boost库开发支持XP的MFC程序

欢迎大家关注我的公*号:embedded_bug 有人可能会问,这都什么年代了,还需要开发XP下的程序,而且还是用MFC?如果经常和工业企业打交道的话,会知道还有大量的企业系统运行着XP系统,并且使用MFC开发程序相比于.net,java之类的可以不用安装第三方软件(.net framework, java),而且程序小,运行快,内存占用少。 开发支持XP系统软件的最简单方法其实是使用VS2010,直接安装之后开发就行,编译出来32位的程序就是支持XP的,不想折腾的直接使用VS2010。 但是现在都2022

tiantao433的博客 5384

更新vs2019 后,在指定-T v141_xp情况下载编译会报下面warning MSB8051

需要修改下面的文件: VS2019\MSBuild\Microsoft\VC\v150\Platforms\Win32\PlatformToolsets\v141_xp 文件内容如下: <!-- *********************************************************************************************** Toolset.targets WARNING: DO NOT MODIFY this file unle

大坡3D软件开发 1221

基于深度学习的高精度牙齿健康检测识别系统(PyTorch+Pyside6+YOLOv5模型)

近年来,机器学习和深度学习取得了较大的发展,深度学习方法在检测精度和速度方面与传统方法相比表现出更良好的性能。YOLOv5是单阶段目标检测算法YOLO的第五代,根据实验得出结论,其在速度与准确性能方面都有了明显提升,开源的代码可见https://github.com/ultralytics/yolov5。因此本博文利用YOLOv5检测算法实现一种高精度家禽猪识别检测模型,再搭配上Pyside6库写出界面系统,完成目标检测识别页面的开发。

sc1434404661的博客 5799

XP上的最后VS版本和能编译出XP上运行程序的最后VS版本

开发IDE当选择VS时,能在XP上安装的最后VS版本是VS2010,那目前这些版本都相当久远和落后了,那能编译出XP上运行程序的VS版本是哪些呢,如何编译呢?其实,能编译出XP上运行程序的VS版本,直到VS2019 V16.7,还能编译出XP上运行的程序。6)对于QT的开发,QT5.6是最后支持XP的版本,而对应的插件只能安装到VS2013版本。2)同时Windows SDK的版本,也注意,要安装支持XP的SDK,如8.1或10。1)只是,要出现这样的选项,需要在安装VS时,选择相应的组件或选项。

ygwelcome的博客 2243

从代码学习深度强化学习 - 目标导向的强化学习-HER算法 PyTorch版

经典的深度强化学习算法,如 PPO、SAC 等,在各自擅长的任务中都取得了非常好的效果。但它们通常都局限在解决单个任务上,换句话说,训练好的算法,在运行时也只能完成一个特定的任务。想象一个场景:我们想让一个机械臂能把桌子上的任何一个物体重置到任意一个指定位置。对于传统强化学习而言,如果目标物体的初始位置和目标位置每次都变化,那么这就是一个全新的任务。即便任务的“格式”——抓取并移动——是一样的,但策略本身可能需要重新训练。这显然效率极低。为了解决这类问题,

weixin_43887510的博客 1498

VS2022添加支持.Net Framwork4.0的方法

由于VS2022不支持.net framwork4.5.2以下版本,但是一些项目需要支持xp系统,故需要使用.net framwork4.0进行开发。 ​ 如果直接下载.net framwork4.0的安装包会提示已经安装更高版本。 ​ 这里我们可以通过vs_buildtools 2019进行安装 打开Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 (microsoft.com),点击下载按钮,这里需要登录 ,然后找到buildtools安装程序进行下载

ivanwfy的专栏 4033

用AI助手Cursor轻松自动生成流程图

通过 Cursor + Mermaid,我们可以快速、准确地自动生成流程图,上面演示的例子部分流程图可能比较丑,我们可以通过流程图软件导入Mermaid代码,然后手动进行微调就可以了,如果你对美观要求不是特别多,可以直接用,这将极大地提升代码可视化和架构设计的效率。

呱牛 Just do IT 1936

Kindle使用USB数据线传书封面无法显示问题

不建议按这个解决封面问题,首先USB多次插拔麻烦,其次就是我起初按博主方法没啥问题,后面无论我怎么个顺序都出现了‘暂无图片’,我的建议是在亚马逊退出国内只能USB传书的情况下,下载一个calibre 和。飞行模式下用calibre传书到kindle ,然后用Fix Kindle Ebook Cover 修复一下,后面你要继续飞行模式还是连网随你便,两步完事。2,‘’发送到设备’的时候也最好选择 ‘发送特定格式至’ 选择具体的电子书格式,你的电子书是azw3就选azw3,是mobi就选mobi。

meser88的博客 7416

如何一键解决Windows运行库问题:Visual C++运行库合集完整指南

还在为运行软件时频繁遇到"缺少MSVCP140.dll"、"找不到VCRUNTIME140.dll"等错误提示而烦恼吗?Visual C++运行库合集(VisualCppRedist AIO)正是你需要的终极解决方案。这个开源项目将微软从2005年到2022年所有版本的Visual C++ Redistributable运行库打包成一个安装文件,让你一次性解决所有运行库依赖问题,彻底告别繁琐的逐个

gitblog_00040的博客 261

MATLAB使用贝叶斯网络bnt工具箱:使用手册详解

MATLAB使用贝叶斯bnt网络工具箱:使用手册详解

WW、forever的博客 2675

SystemInformer 三种版本获取方式,从下载到回退一次讲清

刚把 SystemInformer(一个 Windows 下的进程/系统监控工具)升到新版,结果老插件直接加载失败,想回退版本却发现官网只挂着最新版。这种"新版的坑、旧版的包"组合,做进程监控和系统调试的人都遇到过。今天把 SystemInformer 历史版本下载和版本回退的路子讲透,看完就能动手。 ## 项目从 Process Hacker 走到今天的几个关键节点 - **2.0** —

gitblog_00290的博客 1026

UG\NX二次开发 找不到指定的dlx文件(Specified Dlx file not found)

有群友问:用Ctrl+U运行的时候就报错,找不到指定的dlx文件Specified Dlx file not found。怎么处理。

王牌飞行员_里海的博客 1127

华为OD机试真题 新系统 2026-04-22 Java&Go 实现【小学生班长选举增强版】

9 月份开学第一天,小学某班级进行班长选举活动,班级共有 N 个学生,每个学生最多可投 3 票(对同一个人只能投一票),也可以弃权不投票,大家投票时写上对应学生的名字。 假设学生不存在重名。考虑到部分少数民族名字带分隔,且整体较长,同学在投票时为了方便,允许同学写全称,也可以只写其中的部分连续段。 例如班级里只有 2 个少数民族名称带点的同学:

MISAYAONE的博客 259

Visual C++运行库终极解决方案:告别DLL缺失错误的完整指南

你是否曾经遇到过这样的困扰:安装某个软件或游戏时,突然弹出"无法启动程序,因为计算机中丢失MSVCP140.dll"的错误提示?或者运行某些应用程序时出现"应用程序无法正常启动(0xc000007b)"的报错?这些恼人的问题通常都源于同一个根源——Visual C++运行库缺失或版本不匹配。VisualCppRedist AIO整合包正是为解决这些Windows系统常见问题而生的终极解决方案。

gitblog_00977的博客 269

VMware ESXi 系统里创建虚拟机,虚拟磁盘日志损坏,如何或者把数据备份?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1636

VisualCppRedist AIO:一键解决Windows运行库安装难题的终极方案

还在为Windows系统中各种软件提示"缺少DLL文件"而烦恼吗?VisualCppRedist AIO项目正是为你量身打造的解决方案!这个**Windows运行库一体化智能管理工具**将Microsoft官方发布的多个版本Visual C++ Redistributable整合为单一安装包,彻底解决了版本碎片化带来的困扰。无论你是普通用户、游戏玩家还是系统管理员,这个工具都能让你的Windows

gitblog_00120的博客 152

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SystemInformer 历史版本完整获取指南:旧版下载、版本回退与多版本管理一次搞定

刚把 SystemInformer 升到新版,老系统上却跑不起来了?作为 Windows 系统监控与调试工具,它的历史版本其实都还找得回来。这篇指南把 SystemInformer 历史版本的选版、旧版下载、版本回退与多版本管理一次讲清。 ## 先选对版本:按使用场景定版本 🎯 别急着下载,你要的"旧版"往往取决于使用场景。对照 [CHANGELOG.txt](https://link.gi

gitblog_01089的博客 515

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Visual C++运行库一站式解决方案:彻底告别DLL缺失错误的终极指南

你是否曾经遇到过这样的情况:下载了一个心仪已久的软件,双击运行时却弹出一个令人沮丧的错误提示"无法启动程序,因为计算机中丢失xxx.dll"?或者当你尝试运行某个游戏时,系统提示缺少MSVCRT相关文件?这些问题往往源于一个共同的原因——Visual C++运行库缺失或版本不匹配。GitHub加速计划的vc/vcredist项目提供了一个完整的一站式解决方案,让你从此告别这些烦恼。 ## 📋

gitblog_00646的博客 213

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Visual C++运行库一键安装指南:告别DLL缺失问题的终极解决方案

Visual C++运行库是Windows系统中许多应用程序运行的基础组件,缺失或版本不匹配常常导致"无法启动程序,因为计算机中丢失xxx.dll"等错误。GitHub加速计划的vc/vcredist项目提供了一个一站式的Visual C++ Redistributable Runtimes整合包,让你轻松解决各类DLL问题。这个Visual C++运行库整合包将微软多年来发布的各类Visual

gitblog_00002的博客 286

SystemInformer 进程监控工具版本获取与回退指南:历史版本下载与指定版本编译的 3 种方法全讲清

本文面向需要把 SystemInformer 这一进程/系统监控工具回退到历史版本、或从源码编译出指定版本的读者,说明如何获取、构建并校验正确的版本包。 ## 版本速览:关键版本节点一览表 先给结论:多数机器用最新稳定版即可,只有 XP/Vista、旧版特性或插件兼容这几种情况才需要找旧版本。 | 版本 | 定位与里程碑 | | --- | --- | | 2.0 | Process Hac

gitblog_00381的博客 184

SystemInformer 历史版本怎么下载:3 条渠道 + 回退检查清单

生产环境要锁一个验证过的 SystemInformer 版本,或者要在旧机器上复现当年的排查过程,你都会遇到同一个问题:SystemInformer 历史版本去哪拿?SystemInformer 版本回退怎么做才不翻车?下文按"先选版本、再走渠道、后做核对"的顺序,把 SystemInformer 版本下载的三条路(官方 Releases 页、源码编译指定版本、第三方存档)一次讲清,最后给一份可勾

gitblog_00088的博客 439
上一篇: ubuntu14.04 Unknown job: ssh
下一篇: Stay hungry,stay foolish 不是什么“求知若饥,虚心若愚”
fa1lr4in
博客等级 码龄9年 64粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值