当前位置:网络安全 > 自定义全局宏 vs2010_VS2010 编写自定义宏

自定义全局宏 vs2010_VS2010 编写自定义宏

  • 发布:2023-10-10 05:38

如何自己编写宏?

1.打开VS2010(或其他版本的VS),“工具”-->? “宏”--->“宏 IDE...(Alt + F11)” 打开宏 IDE

2. 在宏IDE的工具栏中,转到“MyMacros”->“添加模块”->CollapseExpandAllProject

3.将初始内容替换为以下代码

选项严格关闭选项显式关闭导入系统导入EnvDTE导入EnvDTE80导入EnvDTE90导入System.Diagnostics公共模块CollapseExpandAllProject? ‘(特别注意:这里要与保存的模块名保持一致,否则无法调用宏?) ? ? '------------------------------------------------------------? ? ? '折叠所有项目?折叠? ? '作者:张荣华? ? '日期:2010年5月12日? ? '------------------------------------------------------------ ? ?公共子 CollapseAllProject() ? ? ? ? lastSlashIndex = DTE.Solution.FullName.LastIndexOf("\") + 1 ?'获取最后一个斜杠索引。 ? ? ? ? SolutionNameWithExtension = DTE.Solution.FullName.Substring(lastSlashIndex) ?'获取带有扩展名的解决方案名称。? ? ? ? ? SolutionName = SolutionNameWithExtension.ToString().Substring(0, SolutionNameWithExtension.ToString().Length - 4) ' 获取不带扩展名的解决方案名称。 ? ? ? ?计数 = 0 ? ? ? ?对于 DTE.Solution.Projects 中的每个 curProject 作为 EnvDTE.Project ? ? ? ? ? ?尝试 ? ? ? ? ? ? ? ? www.sychzs.cnWindow.对象.GetItem(solutionName + "\" + www.sychzs.cn).UIHierarchyItems.Expanded = False ? ? ? ? ? ? ? ?计数 = 计数 + 1 ? ? ? ? ? ?捕获 ex 作为 ArgumentException 吗? ? ? ? ? ? ? ?继续为? ? ? ? ? ?结束尝试? ? ? ?下一个当前项目? ?结束子? ? '------------------------------------------------------------? ? ? '展开所有项目?展开? ? '作者:张荣华? ? '日期:2010年5月12日? ? '------------------------------------------------------------ ? ?公共子 ExpandAllProject() ? ? ? ? lastSlashIndex = DTE.Solution.FullName.LastIndexOf("\") + 1 ?'获取最后一个斜杠索引。 ? ? ? ? SolutionNameWithExtension = DTE.Solution.FullName.Substring(lastSlashIndex) ?'获取带有扩展名的解决方案名称。? ? ? ? ? SolutionName = SolutionNameWithExtension.ToString().Substring(0, SolutionNameWithExtension.ToString().Length - 4) ' 获取不带扩展名的解决方案名称。 ? ? ? ?计数 = 0 ? ? ? ?对于 DTE.Solution.Projects 中的每个 curProject 作为 EnvDTE.Project ? ? ? ? ? ?尝试 ? ? ? ?? ? ? ? DTE.ActiveWindow.Object.GetItem(solutionName + "\" + www.sychzs.cn).UIHierarchyItems.Expanded = True ? ? ? ? ? ? ?参数异常? ? ? ? ? ? ? ?继续为? ? ? ? ? ?结束尝试? ? ? ?下一个当前项目? ?末端子末端模块

保存后关闭宏IDE

4、返回VS2010主界面(注意是在VS2010主界面,不是某解决方案的主界面),“工具”--->“选项”--->“环境”- -->“键盘”--->在显示命令包含:下的编辑框中输入宏(所有包含宏的名称),您将看到带有“MyMacros.CollapseExpandAllProject.CollapseAllProject”的项目,选择它,然后按快捷键:自定义快捷键,建议使用Alt+?数字0-9和-+组合键避免与编译环境的快捷键冲突,然后“分配”完成。

5、接下来我们可以验证一下,打开一个解决方案,按下Alt+数字,就会执行相应的操作。

注意按快捷键时,鼠标必须位于解决方案资源管理器上方,否则会报错

请参阅:

http://www.sychzs.cn/zhangronghua/archive/2010/05/12/Colloapse_Expand_Macro.html

这里所说的宏并不是指#define PI 3.14159之类的,而是指按Alt+1、Alt+2等键盘组合可以轻松插入一大串自定义内容,如:

/**************************************************** **********************

* 功能名称:

* 功能:

* 参数:

* 返回值:void

* 创建者:Ajioy

* 博客:www.sychzs.cn/ajioy

* 电子邮件: support@www.sychzs.cn

* 日期:2013.1.8 21:18

**************************************************** ***** ************************/

这对于团队发展尤为重要。当然,它也可以作为在互联网上发布源代码时的简单版权声明,无需花费时间人工编写和排版,减少了许多繁琐和不必要的步骤。工作。

简单理解一下,这里所说的宏(Macro)是开发工具VS2010(或者其他版本的VS)自带的。它是一个方便开发者发表评论、版权声明或执行其他琐碎任务的“小机器人”。 ”。反复辛苦地为我们做一些不可或缺的小事。总之,有了它的存在,生活变得更加美好。

如何自己写宏?

1。打开VS2010(或者其他版本的VS),“工具”-->? “宏”--->“宏 IDE...(Alt + F11)” 打开宏 IDE

2。在宏IDE的工具栏中,“项目”->“添加模块”(或添加新项)->名称:AjioyMacros--->“添加”

3。将初始内容替换为以下代码

进口系统

导入 EnvDTE

进口EnvDTE80

导入EnvDTE90

进口EnvDTE90a

导入EnvDTE100

导入系统.诊断

导入系统.Text

导入 System.Text.RegularExpressions

导入系统.IO

导入系统.集合.专业

公共模块AjioyMacros'这个必须和保存的Module名称一致,否则无法调用宏

子 AddMessageBox()

'描述添加对话框

ActiveDocument.Selection.Text = "MessageBox("""",""提示"");" + vbNewLine + "系统(""暂停"");"

结束子

子 AddStartComment()

'DESCRIPTION评论开始

ActiveDocument.Selection.Text = "系统(""暂停"");"

结束子

公共子FileSign()

'DESCRIPTION 文件签名

将描述变暗为新 StringBuilder

将 BlankLine 变暗为字符串

BlankLine = "//" + vbNewLine

带说明

.AppendFormat("//版权所有 (c) 2013 Ajioy 保留所有权利{0}",vbNewLine)

.AppendFormat("/************************************************ ****************************************************** * *{0}", vbNewLine)

.AppendFormat("*文件名: {0}{1}{2}", vbTab, www.sychzs.cn, vbNewLine)

.AppendFormat("*描述: {0}{1}{2}", vbTab, "", vbNewLine)

.AppendFormat("*创建日期: {0}{1}{2}", vbTab, Date.Today.ToString("yyyy-MM-dd"), vbNewLine)

.AppendFormat("*作者:{0}{1}{2}", vbTab, "Ajioy", vbNewLine)

.AppendFormat("*版本: {0}{1}{2}", vbTab, "1.0", vbNewLine)

.AppendFormat("*-------------------------------------------------------- --- ---------------------------------------------------------- --- --{0}", vbNewLine)

.AppendFormat("*修改记录:{0}", vbNewLine)

.AppendFormat("*日期{0}版本{1}由{2}修改内容{3}修改", New String(vbTab, 3), vbTab, vbTab, vbNewLine)

.AppendFormat("*{0}{1}", Date.Today.ToString("yyyy-MM-dd"), vbNewLine)

.AppendFormat("******************************************** ******************************************************/ {0}", vbNewLine)

.追加(vbNewLine)

结束于

'插入cs文件头部

将 objSel 调暗为 TextSelection

objSel = CType(www.sychzs.cnion, TextSelection)

www.sychzs.cn("FileSign")

objSel.StartOfDocument(False)

objSel.Insert(Description.ToString())

DTE.UndoContext.Close()

结束子

子函数Sign()

'描述文件签名

昏暗对象

obj = 现在()

Dim DocSel As EnvDTE.TextSelection

DocSel = www.sychzs.cnion

DocSel.NewLine()

DocSel.Text = "/******************************************** **********************************”

DocSel.NewLine()

DocSel.Text = "* 函数名称:"

DocSel.NewLine()

DocSel.Text = "* 功能:"

DocSel.NewLine()

DocSel.Text = "* 参数:"

DocSel.NewLine()

DocSel.Text = "* 返回值:"

DocSel.NewLine()

DocSel.Text = "* 创建者:Ajioy"

DocSel.NewLine()

DocSel.Text = "*博客:www.sychzs.cn/ajioy"

DocSel.NewLine()

DocSel.Text = "* 电子邮件: support@www.sychzs.cn"

DocSel.NewLine()

DocSel.Text = "*日期:" + CStr(年份(obj)) + "." + CStr(月份(obj)) + "." + CStr(Day(obj)) + " " + CStr( 小时(obj)) + ":" + CStr(分钟(obj)) 'System.DateTime.Now.ToLongDateString()

DocSel.NewLine()

DocSel.Text = "***************************************** *************************/”

结束子

子 AddModify()

'描述添加修改

昏暗对象

obj = 现在()

ActiveDocument.Selection.Text = "//Ajioy" + CStr(Year(obj)) + "." + CStr(月份(obj)) + "." + CStr(日(obj)) +" " + CStr(小时(obj)) + ":" + CStr(分钟(obj)) + "修改"

结束子

子 AddStartSymbol()

'描述开始评论

ActiveDocument.Selection.Text =“/*”

结束子

子 AddEndSymbol()

'描述结束评论

ActiveDocument.Selection.Text =“*/”

结束子

终端模块

保存后关闭宏IDE

4。返回VS2010主界面,“工具”--->“选项”--->“环境”--->“键盘”--->在显示命令下的编辑框中输入包含:FunctionSign(所有名称带有括号,如AddStartSymbol()...),你会看到一个带有“Macros.Macros(or Samples).AjioyMacros.FunctionSign”的项目,选中它,并在Press快捷键:键下自定义快捷键,建议使用 Alt +?数字0-9和-+组合键避免与编译环境快捷键冲突,然后“Assign”完成。

接下来我们可以随便验证一下,打开一个.cpp文件,按Alt+数字,看看会发生什么。

全文结束。

知道不容易,让别人知道更难。而且后者往往比前者需要更长的时间。

日记和博客之间的区别在于,后者在撰写时假设有一群读者。前者无论如何都独自享受。

是的,我决心在博客上写日记。

?

1.

配置属性->

几乎所有常规项目都有与其对应的宏。

2. 默认

链接器中的输出文件由

生成

配置属性->

常规

输出目录,

目标文件名,

由扩展组合 $(OutDir)$(TargetName)$(TargetExt) 确定。将较低版本的VS项目转换为2010后,经常会因为这两个地方不一致而出现错误。

3.

配置属性->

VC++目录下的

包含目录和

不知道单独列出参考目录是什么意思,因为它还是跟随项目,单独设置的

配置属性->

C/C++->

常规

其他包含目录和

配置属性->

链接器->

常规

附加库目录的效果是一样的。

4.

配置属性->

链接器->

输入 ->

额外的依赖项,表被遗忘。

5。 $(ABCD)形式的东西是宏或者windows环境变量,%(ABCD)形式的东西也是宏。我猜它们都是宏,前者的范围是VS,后者的范围与项目或解决方案有关。

?

转载自:

http://www.sychzs.cn/mumiliang/archive/2010/11/18/1881028.html

相关文章