1. 背景
使用VS2017进行C++编程,在项目中添加新建项,创建cpp文件以实现函数。新建cpp时需要添加一些相关的文件信息,如文件名,创建时间,固定代码模块等。如果新建多个这样的文件,每次复制这些信息嫌麻烦,现希望在VS创建项模板以实现新建项后自动添加文件信息。
每次新建项希望自动添加的代码:
// 文件名:
// 创建时间:
#include "pch.h"
#include <iostream>
int main_1()
{
return 0;
}
2. 实现步骤
1. 新建1.cpp作为项模板,修改所需自动添加的代码。新建不同cpp可变化的内容参考下表中的模板参数。
// 文件名:$itemname$
// 创建时间:$time$
#include "pch.h"
#include <iostream>
int main_$itemname$()
{
return 0;
}
模板参数 | 说明 |
---|---|
clrversion | 公共语言运行时 (CLR) 的当前版本。 |
ext_* | 将 ext_ 前缀添加到任何参数,以引用父模板的变量。 例如 ext_safeprojectname。 |
guid[1-10] | 一个用于替换项目文件中的项目 GUID 的 GUID。 可指定最多 10 个唯一的 GUID(例如,guid1)。 |
itemname | 在其中使用参数的文件的名称。 |
machinename | 当前的计算机名称(例如,Computer01)。 |
projectname | 创建项目时由用户提供的名称。 |
registeredorganization | 来自 HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization 的注册表项值。 |
rootnamespace | 当前项目的根命名空间。 此参数仅适用于项模板。 |
safeitemname | 与 itemname 相同,但所有不安全字符和空格替换为了下划线。 |
safeitemrootname | 与 safeitemname 相同。 |
safeprojectname | 用户在创建项目时提供的名称,但名称中删除了所有不安全字符和空格。 |
time | 以 DD/MM/YYYY 00:00:00 格式表示的当前时间。 |
specifiedSolutionName | 解决方案的名称。 在选中“创建解决方案目录”时,specifiedSolutionName 具有解决方案名称。 在未选中“创建解决方案目录”时,specifiedSolutionName 为空。 |
userdomain | 当前的用户域。 |
username | 当前的用户名称。 |
webnamespace | 当前网站的名称。 此参数在 Web 窗体模板中用于保证类名是唯一的。 如果网站在 Web 服务器的根目录下,则此模板参数解析为 Web 服务器的根目录。 |
year | 以 YYYY 格式表示的当前年份。 |
2. 导出项模板
模板输出位置:C:\Users\Administrator\Documents\Visual Studio 2017\My Exported Templates
模板启动位置:C:\Users\Administrator\Documents\Visual Studio 2017\Templates\ItemTemplates
注意:模板输出位置与模板启动位置并不相同,在VS中真正起作用的是模板启动位置。new template.zip无需解压。
如果需要本文所用的项模板,可直接点击new template.zip下载。
3. 重启VS,新建2.cpp,可发现代码已自动添加。