在 Visual Studio 2022 中创建一个类似于旧版本 Visual Studio 中的 Win32 Console Application 项目
在 Visual Studio 2022 中创建一个项目,其自动生成的源文件内容包含 #include "stdafx.h" 和使用_tmain 作为入口点,意味着你需要创建一个基于 Windows 的传统控制台应用程序,这通常与旧版本的 Visual Studio(如 Visual Studio 2005 或更早)和使用预编译头(如 stdafx.h)的项目相关。然而,从 Visual Studio 2017 开始,项目模板和结构有了显著变化,不再默认生成 stdafx.h 或使用 _tmain。不过仍然可以手动设置来达到类似的效果。
0x01 创建项目并手动调整以匹配旧模板
- 启动Visual Studio 2022 并选择 “创建新项目”
- 在“创建新项目”窗口中,搜索并选择 “控制台应用”(确保是C++的)然后点击 “下一步”
- 填写项目的名称、位置等信息,然后点击 “下一步”
- 在“项目设置”页面,确保选择了正确的语言标准,通常默认即可。点击 “创建”
- 项目将使用
main函数作为入口点。为了使用_tmain和包含 stdafx.h,你需要手动进行一些更改。
0x02 添加预编译头和修改入口点
添加预编译头
- 右键点击项目在解决方案资源管理器中,选择 “添加” -> “新建项”
- 选择 “预编译头”(如果这个选项不可用,选择 “C++ 文件” 并将文件命名为 stdafx.h)
- 创建一个对应的 stdafx.cpp 文件,其中包含
#include "stdafx.h"
修改源文件
打开项目中的源文件(默认为 main.cpp 或类似名称)
替换内容为
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[]) {
return 0;
}
为了使用
_tmain,你需要包含 tchar.h,或者直接使用main也是可以的。
修改项目属性(如果使用了
_tmain)- 右键点击项目,选择 “属性”
- 转到 “配置属性” -> “C/C++” -> “预编译头”
- 设置 “预编译头” 为 “使用(/Yu)”
- 设置 stdafx.cpp 的预编译头为 “创建(/Yc)”
包含TCHAR头文件(如果使用
_tmain)- 在 stdafx.h 或直接在源文件顶部添加
#include <tchar.h>。
- 在 stdafx.h 或直接在源文件顶部添加
注意
_tmain和_TCHAR是在 Windows 特定的 TCHAR 机制中使用,用于在 Unicode 和 ANSI 编码之间进行切换。如果你的应用不需要支持 ANSI,直接使用wmain或标准的main可能更简单- Visual Studio 的新版本鼓励使用标准的 C++ 特性和库。如果没有特定需求,建议使用标准的
main函数入口和避免使用非标准的头文件如 stdafx.h
-End-
在 Visual Studio 2022 中创建一个类似于旧版本 Visual Studio 中的 Win32 Console Application 项目的更多相关文章
- Ionic 2 中创建一个照片倾斜浏览组件
内容简介 今天介绍一个新的UI元素,就是当我们改变设备的方向时,我们可以看到照片的不同部分,有一种身临其境的感觉,类似于360全景视图在移动设备上的应用. 倾斜照片浏览 Ionic 2 实例开发 新增 ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字"Hello Android",并将应用程序的名称更改为"Firs ...
- Visual Studio 2022 不支持 .NET Framework 老版本 项目解决办法
Visual Studio 2022 不支持 .NET Framework老版本 (4.5) 项目解决办法 新电脑安装的是Visual Studio 2022,打开老项目的时候发现没有.net fra ...
- 创建一个目录info,并在目录中创建一个文件test.txt,把该文件的信息读取出来,并显示出来
/*4.创建一个目录info,并在目录中创建一个文件test.txt,把该文件的信息读取出来,并显示出来*/ #import <Foundation/Foundation.h>#defin ...
- eclipse中创建一个maven项目
1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...
- iOS9中如何在日历App中创建一个任意时间之前开始的提醒(三)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 四.创建任意时间之前开始的提醒 现在我们找到了指定源中的指定日 ...
- 在C#/.NET应用程序开发中创建一个基于Topshelf的应用程序守护进程(服务)
本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...
- Eclipse中创建一个新的SpringBoot项目
在Eclipse中创建一个新的spring Boot项目: 1. 首先在Eclipse中安装STS插件:在Eclipse主窗口中点击 Help -> Eclipse Marketplace... ...
- 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM
题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...
- 父类是在子类创建对象时候 在子类中创建一个super内存空间
父类是在子类创建对象时候 在子类中创建一个super内存空间
随机推荐
- Java 多线程------测试 Thread中的常用方法 + 线程的优先级:
1 package com.bytezero.threadexer; 2 3 import javax.sound.midi.Soundbank; 4 5 /** 6 * 测试 Thread中的常用方 ...
- vue3使用路由keep-alive和监听路由实现transition
随着vue3.0的发布,vue-router发布了4.0版本,文档 很明了,提供了vue2路由到vue3的变化和写法指导. vue2: // transition <transition nam ...
- mainWindow = new BrowserWindow 打开慢的原因 electron 已解决 Windows Defender 拦截导致
Windows Defender 导致拦截 不是变量的事儿 解决方案: win10 开始 设置 - windows 安全中心 - 病毒和威胁防护 - 病毒和威胁防护设置 - 排除项 - 添加排除项 将 ...
- vscode 格式化 vue 等文件的 配置 eslint vetur prettier Beautify
需求 自动格式化需求 多行回车 合并一行,去分号 最后一个逗号,自动删除,符合eslint 结果 虽然能用了,但是 百度好几个方案,也不知道哪个对哪个,太忙没时间弄了. 配置文件记录 eslint 得 ...
- GO 语言的并发编程相关知识点简介与测试【GO 基础】
〇.什么是协程 Coroutines ? 进程和线程太常见,本文就不再赘述了,直接一起看下什么是协程.如下图,先看下协程的定位: 关于用户空间和内核空间:进程运行起来就涉及到对内存资源的管理,然而内存 ...
- python queue模块实例解析
一 概念: 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,是一种操作受限制的线性表. 进行插入操作的端称为队尾,进行 ...
- 脑电测量ADS1299芯片调试总结
问题一:读出来ID不对? 笔者经过查阅官网资料和测试,发现这个一般是上电或者启动次序不对引起的. 特别是上电次序不同会导致这类问题. 问题二:内部时钟和外部时钟的选择是什么? 就拿内部时钟来说吧,首先 ...
- C++B树的实现
B树的实现 今天我们就来实现以下B树,B树有什么特点那?我们来列举一下 每个非叶子节点中存放若干关键字数据,并且有若干指向儿子节点的指针.指针数目=关键字数目+1 根节点有最少1个,最多m-1个关键字 ...
- 【leetcode 952. 按公因数计算最大组件大小】【欧拉筛+并查集】
import java.util.ArrayList; import java.util.Arrays; import java.util.List; class Solution { List< ...
- Windows下写脚本无法运行在linux上?怎麽办?
Windows下写脚本无法运行在linux上?怎麽办? $'\r': command not found的解决方法 在Linux系统中,运行Shell脚本,出现了如下错误: one-more.sh: ...