VS2022 支持XP
Posted 福州-司马懿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 语法错误:此处出现意外的"标识符"; 应为"类型说明符"
如果代码在之前版本没问题,升级之后报上面错误。需要右击,选择属性 —> 配置属性 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
获取设备唯一标识
wmic csproduct get uuid
wmic cpu get processorid
wmic diskdrive get serialnumber
wmic baseboard get version
wmic bios get Version
wmic bios get Manufacturer
以上是关于VS2022 支持XP的主要内容,如果未能解决你的问题,请参考以下文章