为了防止 C++ 头文件 被重复包含,需要在头文件中加入防止防重包含的宏定义,这个IDE宏帮助完成这个工作。
在头文件里插入如下代码的宏
#ifndef __FILENAME_H_FEB57674_34B0_4043_BB8B_D4651FE588CB__ #define __FILENAME_H_FEB57674_34B0_4043_BB8B_D4651FE588CB__ #ifdef _MSC_VER #pragma once #endif
#endif //__FILENAME_H_FEB57674_34B0_4043_BB8B_D4651FE588CB__
|
======================== IDE 宏代码开始 ========================
Option Strict Off Option Explicit Off Imports System Imports EnvDTE Imports EnvDTE80 Imports System.Diagnostics Public Module HeadFile Const author = "jadedrip" Const compary = "杭州科技开发有限公司"
' 创建 C++ 头文件的防重包含宏定义 Sub MakeHHead() Dim gid As String, def As String, filename As String, value As String
Dim objTextDoc As TextDocument Dim objEP As EditPoint
DTE.ActiveDocument.Selection.GotoLine(1)
objTextDoc = DTE.ActiveDocument.Object("TextDocument")
objEP = objTextDoc.StartPoint.CreateEditPoint ' Create an EditPoint and add some text.
objEP.Insert("/*" + vbCr) objEP.Insert(" * Copyright (c) " + Date.Today.Year.ToString() + ", " + compary + vbCr) objEP.Insert(" * 保留所有权利。( All rights reserved. )" + vbCr) objEP.Insert(" * " + vbCr) objEP.Insert(" * 文件名称:" + DTE.ActiveDocument.Name + vbCr) objEP.Insert(" * 文件标识:" + vbCr) objEP.Insert(" * 摘 要:" + vbCr) objEP.Insert(" * " + vbCr) objEP.Insert(" * 当前版本:1.0" + vbCr) objEP.Insert(" * 作 者:" + author + vbCr) objEP.Insert(" * 完成日期:" + Date.Today.ToLongDateString + vbCr) objEP.Insert(" *" + vbCr) objEP.Insert(" * 取代版本:" + vbCr) objEP.Insert(" * 原作者 :" + vbCr) objEP.Insert(" * 完成日期:" + vbCr) objEP.Insert(" */" + vbCr)
objEP.Insert("#ifndef ")
gid = Guid.NewGuid().ToString()
gid = gid.Replace("-", "_") gid = gid.ToUpper()
filename = DTE.ActiveDocument.Name.ToUpper() filename = filename.Replace(".", "_")
def = "__" + filename + "_" + gid + "__"
objEP.Insert(def + vbCr)
objEP.Insert("#define " + def + vbCr)
objEP.Insert("#if _MSC_VER > 1000" + vbCr)
objEP.Insert("#pragma once" + vbCr)
objEP.Insert("#endif" + vbCr + vbCr + vbCr + vbCr + vbCr)
objEP.Insert("#endif //" + def + vbCr)
DTE.ActiveDocument.Selection.GotoLine(6) End Sub End Module
|