VS2022 支持XP

举报
福州司马懿 发表于 2022/03/11 22:44:33 2022/03/11
【摘要】 (null)不是有效的Win32应用程序 程序在古老的 32位 XP 系统下报错了 (null)不是有效的Win32应用程序 首先,检查 “解决方案配置” 是否设置为 Release + x86(编...

(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

  
 
  • 1
  • 2

在这里插入图片描述
解决方案二
在项目属性,预处理器中添加 _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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

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++,因此只要安装一个就好了在这里插入图片描述

文章来源: blog.csdn.net,作者:福州-司马懿,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/chy555chy/article/details/123399974

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。