快速掌握VC6.0中各种宏注释应用(附图)

所属分类: 软件编程 / C 语言 阅读数: 165
收藏 0 赞 0 分享

为了方便别人或自己阅读自己的程序,注释是坚决不可少的。一个漂亮的程序,不是在于你应用的技术多么高深,而是能够把高深的技术描述的清楚易懂。

在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。然后点击编辑。

复制代码 代码如下:

Sub FunctionDesc()

End Sub

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

效果如下哈:
复制代码 代码如下:

/**
* 函数名 : active(long processInstID,long activityInstID)
* 功能描述: 激活指定业务功能的窗口。
* 输入参数: 流程实例id,活动实例id
* 输出参数:
* 返回值 : active
* 作者 : lhy
* 创建日期: 2012/10/11 10:26:42
*/
HRESULT active(long processInstID,long activityInstID)
{

//动态加载客户的动态链接库
//加载动态链接库
HINSTANCE hDLL=LoadLibrary("customerdll.dll");

//声明函数指针
typedef HRESULT (*activeBusiness)(long,long);
if(hDLL==NULL)
return S_FALSE;

//加载动态链接库中函数的地址
activeBusiness activeBusinessFunc=(activeBusiness)GetProcAddress(hDLL,"active");
//判断地址是否为空
if(activeBusinessFunc==NULL)
return S_FALSE;


activeBusinessFunc(processInstID,activityInstID);

//释放动态链接库
FreeLibrary(hDLL);
return S_OK;
}

其中的样式,可以自己更改,比如//或*。但是这种注释,还是达不到Eclispe中,因为在Eclispe中,每个参数已经在注释中了,这样就直接对每个参数,进行中文解释而已。而这种方式,输入参数,是自己手动填写的。o(︶︿︶)o

另一种更简单的做法如下:

第一:编写脚本,放在安装路径下Macros。后缀是DSM。我的DSM文件路径如下:

第二:选择宏文件

第三:载入文件后,工具—定制中会自动出现或浏览相应路径下相应的文件

第四:操作完毕,进一步设置快捷键,类似第一种方法中设置快捷键,工具—宏—选择相应的宏进行设置

到此为止,最常用的两种注释,都已经添加啦。目前我设置的规范注释就两种,快捷键全部设置java中的快捷键。

遇到陌生的事物,其实请不必因担心顾虑而失去冷静。可以用以前学的知识去剖析这个所谓陌生的东东,陌生中肯定会有您所熟悉亲切的一部分。剩下那部分陌生部分,再在亲切的感觉中慢慢摸索。纵然知道新手,肯定不如老手熟练,效率高,但是谁都有新手的时候,谁有都有老手的时候。

更多精彩内容其他人还在看

用标准c++实现string与各种类型之间的转换

这个类在头文件中定义, < sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本
收藏 0 赞 0 分享

C++如何通过ostringstream实现任意类型转string

再使用整型转string的时候感觉有点棘手,因为itoa不是标准C里面的,而且即便是有itoa,其他类型转string不是很方便。后来去网上找了一下,发现有一个好方法
收藏 0 赞 0 分享

C/C++指针小结

要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区
收藏 0 赞 0 分享

C++ 类的静态成员深入解析

在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成员变量和成员函数使用规则,再给出一个实例来加深印象
收藏 0 赞 0 分享

C++类的静态成员初始化详细讲解

通常静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域操作符来指出静态成员所属的类.但如果静态成员是整型或是枚举型const,则可以在类声明中初始化
收藏 0 赞 0 分享

C++类静态成员与类静态成员函数详解

静态成员不可在类体内进行赋值,因为它是被所有该类的对象所共享的。你在一个对象里给它赋值,其他对象里的该成员也会发生变化。为了避免混乱,所以不可在类体内进行赋值
收藏 0 赞 0 分享

C++中的friend友元函数详细解析

友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。友元函数的特点是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样
收藏 0 赞 0 分享

static全局变量与普通的全局变量的区别详细解析

以下是对static全局变量与普通的全局变量的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
收藏 0 赞 0 分享

C++ explicit关键字的应用方法详细讲解

C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?下面就让我们一起来看看这方面的知识吧
收藏 0 赞 0 分享

教你5分钟轻松搞定内存字节对齐

随便google一下,人家就可以跟你解释的,一大堆的道理,我们没怎么多时间,讨论为何要对齐.直入主题,怎么判断内存对齐规则,sizeof的结果怎么来的,请牢记以下3条原则
收藏 0 赞 0 分享
查看更多