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
    在这里插入图片描述

不支持 vdproj

vdproj 是 Visual Studio 的安装项目工程文件的后缀名(vcxproj 是VC工程文件的后缀),下面错误说明了 插件"Microsoft Virsual Studio Installer Projects 2022" 未安装或未启用
在这里插入图片描述

扩展 —> 管理扩展(安装该插件需要 “翻土啬”)
在这里插入图片描述
如果处于灰色状态,请将其 “启用”
在这里插入图片描述

获取设备唯一标识

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

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

猜你喜欢

转载自blog.csdn.net/chy555chy/article/details/123399974