标签:
为了方便别人或自己阅读自己的程序,注释是坚决不可少的。一个漂亮的程序,不是在于你应用的技术多么高深,而是能够把高深的技术描述的清楚易懂。
在Java的IDE环境——Eclispe中,有很多中注释的,并且设置注释也是很方便的,因为现在从事C++,嘻嘻,Eclispe已经卸载,至于设置注释的地方,直接百度或谷歌即可。
所以嘛,习惯了Eclispe的注释,所以想法设法,在VC6.0中尝试。当对于一个陌生的东西而言,如何熟悉他呢,就是拿你现在已有的知识,去联想。比如Java中截取字符串,或解析xml等,一个语言中有,另一个语言中十之八九也有的。
并且在VB.NET中,当时添加各种注释,是通过宏定义的,相比之下,还是喜欢Eclispe设置,因为更加傻瓜,直接选择添加宏定义比如$Date
那么来说一下,在VC6.0中是如何添加常用的文件头注释和函数方法注释。
在上上篇博客中,已经介绍了一种,使用CTRL+\来注释某一行的或多行。并且在上篇博客中也介绍了插件的使用,其中就有多行注释。
我们说一下,使用宏定义的方式,来添加文件头和函数的注释,也就是自己定义脚本,嘻嘻,是VB6.0的脚本吼,看见那种Sub End Sub,还是蛮亲切的哦
第一:打开VC6.0程序,工具——定制——附加项和宏定义——勾选SAMPLE
第二:打开VC6.0程序,选择工具——宏
第三:点击确定。出现各种宏的界面。
第四:在宏名称中,写自己需要定义的注释名称。比如函数注释——FunctionDesc。然后点击编辑。
PS:可以对设置的注释,进行快捷键设置,类似Java中的CTRL+SHIFT+\
点击选项:
第五:填充vb脚本。若是您的脚本技术了得,那就自己写喽,若是想省事可以直接copy或者modify一下即可。我函数描述脚本如下:
Sub FunctionDesc() Dim doc set doc = ActiveDocument ‘ Be sure active document is a text document if doc Is Nothing Then Exit Sub elseif doc.Type <> "Text" Then Exit Sub End If doc.Selection = "/** " doc.Selection.NewLine doc.Selection = " * 函数名 : " doc.Selection.LineDown doc.Selection.copy doc.Selection.LineUp doc.Selection.EndOfLine dsLastText doc.Selection = doc.Selection + " " doc.Selection.paste doc.Selection = " * 功能描述:" doc.Selection.NewLine doc.Selection = "* 输入参数:" doc.Selection.NewLine doc.Selection = "* 输出参数:" doc.Selection.NewLine doc.Selection = "* 返回值 :" doc.Selection.LineDown doc.Selection.StartOfLine dsFirstText ‘ doc.Selection.CharRight dsExtend, 4 doc.Selection.WordRight dsExtend, 1 doc.Selection.copy doc.Selection.LineUp doc.Selection.EndOfLine dsLastText doc.Selection = doc.Selection + " " doc.Selection.paste doc.Selection.NewLine doc.Selection = "* 作者 : lhy " doc.Selection.NewLine doc.Selection = "* 创建日期: " + CStr(Now()) doc.Selection.NewLine doc.Selection = "*/ " End Sub
文件头注释类似:文件头注释如下:
Sub FileDesc() Dim doc set doc = ActiveDocument ‘ Be sure active document is a text document if doc Is Nothing Then Exit Sub elseif doc.Type <> "Text" Then Exit Sub End If doc.Selection.MoveTo 1, 1 doc.Selection.NewLine doc.Selection.MoveTo 1, 1 doc.Selection = "/** " doc.Selection.NewLine doc.Selection = " * 版权说明 Contect copyright (c)" doc.Selection.NewLine doc.Selection = "* 文件名 : " + ActiveDocument.Name doc.Selection.NewLine doc.Selection ="* 文件描述:" doc.Selection.NewLine doc.Selection = "* 创建日期: " + CStr(Now()) doc.Selection.NewLine doc.Selection = "* 作者 : lhy" doc.Selection.NewLine doc.Selection = "*/ " End Sub
效果如下:
1 /** 2 * 函数名 : active(long processInstID,long activityInstID) 3 * 功能描述: 激活指定业务功能的窗口。 4 * 输入参数: 流程实例id,活动实例id 5 * 输出参数: 6 * 返回值 : active 7 * 作者 : lhy 8 * 创建日期: 2012/10/11 10:26:42 9 */ 10 HRESULT active(long processInstID,long activityInstID) 11 { 12 13 //动态加载客户的动态链接库 14 //加载动态链接库 15 HINSTANCE hDLL=LoadLibrary("customerdll.dll"); 16 17 //声明函数指针 18 typedef HRESULT (*activeBusiness)(long,long); 19 if(hDLL==NULL) 20 return S_FALSE; 21 22 //加载动态链接库中函数的地址 23 activeBusiness activeBusinessFunc=(activeBusiness)GetProcAddress(hDLL,"active"); 24 //判断地址是否为空 25 if(activeBusinessFunc==NULL) 26 return S_FALSE; 27 28 29 activeBusinessFunc(processInstID,activityInstID); 30 31 //释放动态链接库 32 FreeLibrary(hDLL); 33 return S_OK; 34 }
其中的样式,可以自己更改,比如//或*。但是这种注释,还是达不到Eclispe中,因为在Eclispe中,每个参数已经在注释中了,这样就直接对每个参数,进行中文解释而已。而这种方式,输入参数,是自己手动填写的。o(︶︿︶)o
另一种更简单的做法如下:
第一:编写脚本,放在安装路径下Macros。后缀是DSM。我的DSM文件路径如下:
第二:选择宏文件
第三:载入文件后,工具—定制中会自动出现或浏览相应路径下相应的文件
第四:操作完毕,进一步设置快捷键,类似第一种方法中设置快捷键,工具—宏—选择相应的宏进行设置
到此为止,最常用的两种注释,都已经添加啦。目前我设置的规范注释就两种,快捷键全部设置java中的快捷键。
遇到陌生的事物,其实请不必因担心顾虑而失去冷静。可以用以前学的知识去剖析这个所谓陌生的东东,陌生中肯定会有您所熟悉亲切的一部分。剩下那部分陌生部分,再在亲切的感觉中慢慢摸索。纵然知道新手,肯定不如老手熟练,效率高,但是谁都有新手的时候,谁有都有老手的时候。
本文转载:http://www.ylzx8.cn/windows/vc-mfc/122460.html
下面贴出我自己写的宏文件:
1 ‘------------------------------------------------------------------------------ 2 ‘FILE DESCRIPTION: New Macro File 3 ‘------------------------------------------------------------------------------ 4 5 Sub FileNote() 6 Dim doc 7 set doc = ActiveDocument 8 ‘ Be sure active document is a text document 9 if doc Is Nothing Then 10 Exit Sub 11 elseif doc.Type <> "Text" Then 12 Exit Sub 13 End If 14 doc.Selection.MoveTo 1, 1 15 doc.Selection.NewLine 16 doc.Selection.MoveTo 1, 1 17 doc.Selection = "/*" 18 for i=0 to 60 19 doc.Selection = "*" 20 next 21 doc.Selection.NewLine 22 doc.Selection = " * 文件名 : " + ActiveDocument.Name 23 doc.Selection.NewLine 24 doc.Selection = "* 简要描述: " 25 doc.Selection.NewLine 26 doc.Selection = "* 编译环境: Microsoft Visual C++ 6.0 (SP6)" 27 doc.Selection.NewLine 28 doc.Selection = "* 当前版本: 0.0.0" 29 doc.Selection.NewLine 30 doc.Selection = "* 取代版本: 0.0.0" 31 doc.Selection.NewLine 32 doc.Selection = "* 作者 : Semaphores" 33 doc.Selection.NewLine 34 doc.Selection = "* 邮箱 : Semaphores@qq.com" 35 doc.Selection.NewLine 36 doc.Selection = "* 博客 : http://blog.csdn.net/semaphores" 37 doc.Selection.NewLine 38 doc.Selection = "* 创建日期: " + CStr(Now()) 39 doc.Selection.NewLine 40 doc.Selection = "* 修改日期: " + CStr(Now()) 41 doc.Selection.NewLine 42 doc.Selection = "* Copyright(c) 2014 Semaphores. All rights reserved." 43 doc.Selection.NewLine 44 doc.Selection = "*" 45 doc.Selection.NewLine 46 doc.Selection = "* 修改时间: 修正版本: 修改描述:" 47 doc.Selection.NewLine 48 doc.Selection = "* " + CStr(Now())+" 0.0.0" + " " + "创建当前工程" 49 doc.Selection.NewLine 50 for i=0 to 60 51 doc.Selection = "*" 52 next 53 doc.Selection = "*/" 54 doc.Selection.NewLine 55 End Sub 56 57 58 Sub FunctionNote() 59 Dim doc 60 set doc = ActiveDocument 61 ‘ Be sure active document is a text document 62 if doc Is Nothing Then 63 Exit Sub 64 elseif doc.Type <> "Text" Then 65 Exit Sub 66 End If 67 doc.Selection.NewLine 68 doc.Selection = "/*" 69 for i=0 to 60 70 doc.Selection = "*" 71 next 72 doc.Selection.NewLine 73 doc.Selection = "* 函数描述: " 74 doc.Selection.NewLine 75 doc.Selection = "* 函数参数: " 76 doc.Selection.NewLine 77 doc.Selection = "* 函数返回: " 78 doc.Selection.NewLine 79 doc.Selection = "* 函数备注: " 80 doc.Selection.NewLine 81 for i=0 to 60 82 doc.Selection = "*" 83 next 84 doc.Selection = "*/" 85 End Sub 86 87 Sub VoidNote() 88 Dim doc 89 set doc = ActiveDocument 90 ‘ Be sure active document is a text document 91 if doc Is Nothing Then 92 Exit Sub 93 elseif doc.Type <> "Text" Then 94 Exit Sub 95 End If 96 doc.Selection.NewLine 97 doc.Selection = "/*" 98 for i=0 to 60 99 doc.Selection = "*" 100 next 101 doc.Selection.NewLine 102 doc.Selection = "* Void: Void" 103 doc.Selection.NewLine 104 for i=0 to 60 105 doc.Selection = "*" 106 next 107 doc.Selection = "*/" 108 End Sub 109 110 Sub GetFileNameNote() 111 Dim doc 112 set doc = ActiveDocument 113 ‘ Be sure active document is a text document 114 if doc Is Nothing Then 115 Exit Sub 116 elseif doc.Type <> "Text" Then 117 Exit Sub 118 End If 119 MsgBox "FileName: " + ActiveDocument.Name 120 End Sub 121 122 Sub LineNote() 123 Dim doc 124 set doc = ActiveDocument 125 ‘ Be sure active document is a text document 126 if doc Is Nothing Then 127 Exit Sub 128 elseif doc.Type <> "Text" Then 129 Exit Sub 130 End If 131 doc.Selection.NewLine 132 doc.Selection = "/*" 133 for i=0 to 60 134 doc.Selection = "*" 135 next 136 doc.Selection = "/" 137 doc.Selection.NewLine 138 End Sub
标签:
原文地址:http://www.cnblogs.com/semaphores/p/4504012.html