如何修改VS2017 AddClass向导默认C++类模板(适配预编译头)
修改Visual Studio C++添加类向导模板(适配预编译头)
你不需要从零开发VS扩展,直接修改Visual Studio内置的C++类模板文件就能实现需求,具体步骤如下:
1. 找到C++类模板的路径
对于VS2017 Enterprise,C++类模板的存放路径为:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ItemTemplates\VC\Code\1033\Class
- 其他VS版本(如2019/2022)只需将路径中的
2017替换为对应版本号即可 - 路径中的
1033是英文语言代码,若使用其他语言版本,替换为对应语言代码即可
该目录下包含两个核心模板文件:Class.h和Class.cpp,直接修改这两个文件就能自定义添加类向导生成的代码。
2. 修改模板适配预编译头并扩展内容
修改Class.h模板
替换原内容为适配预编译头、包含自定义构造/析构函数及字段的模板代码:
#pragma once #include "pch.h" // 适配预编译头,若项目预编译头文件名不同可替换为实际名称 class $safeitemrootname$ { private: // 自定义私有字段示例 int m_internalId; std::string m_internalName; public: // 默认构造函数 $safeitemrootname$(); // 带参数构造函数 $safeitemrootname$(int id, const std::string& name); // 可选虚析构函数 virtual ~$safeitemrootname$(); // 自定义公有关键字段示例 bool m_isEnabled; double m_calculatedValue; };
修改Class.cpp模板
替换原内容为对应构造/析构函数的实现:
#include "pch.h" // 适配预编译头 #include "$safeitemrootname$.h" $safeitemrootname$::$safeitemrootname$() : m_internalId(0), m_internalName(""), m_isEnabled(false), m_calculatedValue(0.0) { } $safeitemrootname$::$safeitemrootname$(int id, const std::string& name) : m_internalId(id), m_internalName(name), m_isEnabled(false), m_calculatedValue(0.0) { } $safeitemrootname$::~$safeitemrootname$() { }
3. 生效与注意事项
- 修改完成后重启Visual Studio,或执行命令
devenv /installvstemplates刷新模板缓存 - 模板中的
$safeitemrootname$是VS内置变量,会自动替换为你在添加类向导中输入的类名 - 建议修改前备份原模板文件,避免修改出错无法恢复
- 若项目使用的预编译头文件名不是
pch.h,将模板中的#include "pch.h"替换为项目实际的预编译头文件名即可
内容的提问来源于stack exchange,提问作者Eris
相关产品推荐
相关产品推荐

