代碼有點(diǎn)排不齊,是因?yàn)檎迟N的原因,忘見(jiàn)諒。另外,這是我第一篇文章,希望大家鼓勵(lì)。謝謝!
首先,先上效果代碼
1
//********************************************************************
2
// TESTCLASS.H 文件注釋
3
// 文件名 : TESTCLASS.H
4
// 文件路徑: J:\CODING\TEST\C++解疑\CYUYAN\
5
// 作者 : RIPPLE
6
// 創(chuàng)建時(shí)間: 2009/10/3 11:02
7
// 文件描述:
8
//*********************************************************************
9
#ifndef _H_TESTCLASS_H_
10
#define _H_TESTCLASS_H_
11
12
#include <iostream>
13
using namespace std;
14
15
namespace ripple
16

{
17
//********************************************************************
18
// CHello 類(lèi)注釋
19
// 類(lèi)名 : CHello
20
// 基類(lèi)名稱(chēng): NULL
21
// 命名空間: ripple
22
// 作者 : RIPPLE
23
// 創(chuàng)建時(shí)間: 2009/10/3 11:16
24
// 類(lèi)描述 : 說(shuō)Hello
25
//*********************************************************************
26
27
class CHello
28
{
29
public:
30
void SayHello(void)
31
{
32
cout<<"hello"<<endl;
33
}
34
private:
35
36
};
37
38
//********************************************************************
39
// CHelloWorld 類(lèi)注釋
40
// 類(lèi)名 : CHelloWorld
41
// 基類(lèi)名稱(chēng): CHello
42
// 命名空間: ripple
43
// 作者 : RIPPLE
44
// 創(chuàng)建時(shí)間: 2009/10/3 11:16
45
// 類(lèi)描述 : 說(shuō)HelloWorld
46
//*********************************************************************
47
48
class CHelloWorld : public CHello
49
{
50
public:
51
void SayHello()
52
{
53
cout<<"hello world"<<endl;
54
}
55
private:
56
57
};
58
59
}
60
#endif
61
接著,放出測(cè)試代碼
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16



17

18

19

20

21

22

23

24

25

26

27

28



29

30

31



32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49



50

51

52



53

54

55

56

57

58

59

60

61

1
//********************************************************************
2
// C.CPP 文件注釋
3
// 文件名 : C.CPP
4
// 文件路徑: J:\CODING\TEST\C++解疑\CYUYAN\
5
// 作者 : RIPPLE
6
// 創(chuàng)建時(shí)間: 2009/10/3 12:49
7
// 文件描述:
8
//*********************************************************************
9
10
#include "testclass.h"
11
using namespace ripple;
12
int main()
13

{
14
CHello p;
15
p.SayHello();
16
CHelloWorld pp;
17
pp.SayHello();
18
system("pause");
19
}
那些注釋。都是事先在VAssistX中,通過(guò)宏寫(xiě)的。接下來(lái)放出各個(gè)關(guān)鍵宏的代碼
2

3

4

5

6

7

8

9

10

11

12

13



14

15

16

17

18

19

首先是 文件級(jí)的注釋
fileinfo:
快捷鍵自己設(shè)定:(本人用fileinfo作為快捷鍵)
先別管這些宏什么意思,最后我會(huì)貼出所有宏的解釋?zhuān)嘈牛鞘牵阋部梢跃帉?xiě)出符合自己編程習(xí)慣的宏代碼
1
//********************************************************************
2
// $FILE_BASE_UPPER$.$FILE_EXT_UPPER$ 文件注釋
3
// 文件名 : $FILE_BASE_UPPER$.$FILE_EXT_UPPER$
4
// 文件路徑: $FILE_PATH_UPPER$\
5
// 作者 : %USERNAME%
6
// 創(chuàng)建時(shí)間: $YEAR$/$MONTH$/$DAY$ $HOUR$:$MINUTE$
7
// 文件描述: $end$
8
//*********************************************************************
9
接著,防止頭文件被多次包含(選取)(PS:這有兩種情況,一種是這種,用鼠標(biāo)選擇后 右鍵選擇Sourround With (VA X),選擇你事先設(shè)置好的名稱(chēng)即可,
2

3

4

5

6

7

8

9

這里我設(shè)為防止頭文件被多次包含(選取)。
宏代碼敬上:
1
#ifndef _H_$FILE_BASE_UPPER$_H_
2
#define _H_$FILE_BASE_UPPER$_H_
3
4
$selected$
5
6
#endif
注意文中的selected宏,那表示選中的文字將被 #ifndef ... #endif包圍
2

3

4

5

6

最后再展示下類(lèi)注釋的宏編寫(xiě)。
注意:VA Snippet Editor不僅支持自己的宏,還支持系統(tǒng)環(huán)境變量,注意下面的%USERNAME%就是個(gè)例子(表示系統(tǒng)現(xiàn)在使用的用戶(hù)名)
1
//********************************************************************
2
// $ClassName$ 類(lèi)注釋
3
// 類(lèi)名 : $ClassName$
4
// 基類(lèi)名稱(chēng): $BaseClassName$NULL
5
// 命名空間: ripple
6
// 作者 : %USERNAME%
7
// 創(chuàng)建時(shí)間: $YEAR$/$MONTH$/$DAY$ $HOUR$:$MINUTE$
8
// 類(lèi)描述 : $end$
9
//*********************************************************************
10
11
好了,寫(xiě)了幾個(gè)常用的宏代碼了,大家應(yīng)該對(duì)這有點(diǎn)感覺(jué)了吧。
2

3

4

5

6

7

8

9

10

11

安裝軟件的方法就不多說(shuō)了。網(wǎng)上很多。
接下交大家如何打開(kāi)VA Snippet Editor
方法有幾種,第一種,也是個(gè)人比較喜歡的方式,在IDE的文本編輯區(qū)輸入 //-然后會(huì)彈出[Edit]菜單,點(diǎn)擊這個(gè)菜單即可進(jìn)入編輯。當(dāng)然也可以添加刪除拷貝等操作。
第二種是,在IDE主菜單中,依次選擇VAssisstX->Visual AssistX Options->Advanced->Sugesstions,單擊右邊的Edit VA Snippet,即可進(jìn)入編輯。
最后,獻(xiàn)上所有VS Snippet Editor的宏
1
Date
2
$DATE$ Year/month/day formatted as %04d/%02d/%02d
3
$DAY$ Day of month formatted as %d
4
$DAY_02$ Day of month formatted as %02d
5
$DAYNAME$ Three-character abbreviation of day
6
$DAYLONGNAME$ Full name of day
7
$MONTH$ Month formatted as %d
8
$MONTH_02$ Month formatted as %02d
9
$MONTHNAME$ Three-character abbreviation of month
10
$MONTHLONGNAME$ Full name of month
11
$YEAR$ Year formatted as %d
12
$YEAR_02$ Year formatted as %02d
13
Time $HOUR$ Hour formatted as %d
14
$HOUR_02$ Hour formatted as %02d
15
$MINUTE$ Minute formatted as %02d
16
$SECOND$ Second formatted as %02d
17
File
18
$FILE$ Full filename with path*
19
$FILE_UPPER$ Full filename with path in uppercase*
20
$FILE_BASE$ Filename without path or extension*
21
$FILE_BASE_UPPER$ Filename without path or extension in upper case*
22
$FILE_EXT$ Filename extension*
23
$FILE_EXT_UPPER$ Filename extension in upper case*
24
$FILE_PATH$ Path of file*
25
$FILE_PATH_UPPER$ Path of file in upper case*
26
General
27
$clipboard$ Current clipboard
28
$end$ Position of caret after expansion
29
$selected$ Current selection**
30
$$ Literal '$' character
31
Symbol Context
32
$MethodName$ Name of containing method
33
$MethodArgs$ Method parameters
34
$ClassName$ Name of containing class
35
$BaseClassName$ Name of base class of containing class
36
$NamespaceName$ Name of innermost containing namespace
37
GUID
38
$GUID_DEFINITION$ Generated GUID formatted for use in a definition
39
$GUID_STRING$ Generated GUID formatted for use in a string
40
$GUID_STRUCT$ Generated GUID formatted for use in a struct
41
Refactor
42
$GeneratedPropertyName$ Property name generated during Encapsulate Field
43
$MethodArg$ One parameter of the method and its type
44
$MethodArgName$ One parameter of the method
45
$MethodArgType$ Type of one parameter of the method
46
$MethodBody$ Body of implementation
47
$MethodQualifier$ Optional qualifiers of method
48
$ParameterList$ Parameters separated by commas
49
$SymbolContext$ Context and name of method
50
$SymbolName$ Name of method
51
$SymbolPrivileges$ Access of method
52
$SymbolStatic$ Keyword static or blank
53
$SymbolType$ Return type of method
54
$SymbolVirtual$ Keyword virtual or blank
55
56
另外,參考官方網(wǎng)站http://www.wholetomato.com/products/features/vasnippets.asp學(xué)習(xí)更多。。
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

最后的最后是系統(tǒng)環(huán)境常用的變量(也許有用):
WINDOWS系統(tǒng)變量 ALLUSERSPROFILE=H:\Documents and Settings\All Users //所有用戶(hù)的PROFILE路徑 APPDATA=H:\Documents and Settings\Administrator\Application Data //當(dāng)前用戶(hù)的應(yīng)用程序路徑 ClusterLog=H:\WINDOWS\Cluster\cluster.log //集群日志路徑 CommonProgramFiles=H:\Program Files\Common Files //應(yīng)用程序公用的文件路徑 COMPUTERNAME=E2003 //計(jì)算機(jī)名稱(chēng) ComSpec=H:\WINDOWS\system32\cmd.exe //當(dāng)前的命令解釋器 HOMEDRIVE=H: //當(dāng)前用戶(hù)的主盤(pán) HOMEPATH=\Documents and Settings\Administrator //當(dāng)前用戶(hù)的主目錄 LOGONSERVER=\E2003 //登錄的服務(wù)器 NUMBER_O_PROCESSORS=1 //當(dāng)前計(jì)算機(jī)的處理器數(shù)字 OS=Windows_NT //當(dāng)前系統(tǒng)的內(nèi)核 Path=H:\Program Files\Support Tools\;H:\WINDOWS\system32; //學(xué)過(guò)DOS的都知道 PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH //以前DOS下默認(rèn)的是COM,EXE,BAT,現(xiàn)在已經(jīng)有這么多了喲,以前都不知道,腳本都可以不打擴(kuò)展名了 PROCESSOR_ARCHITECTURE=x86 //處理器架構(gòu) PROCESSOR_IDENTIFIER=x86 Family 15 Model 1 Stepping 3, GenuineIntel //處理器標(biāo)識(shí)符 PROCESSOR_LEVEL=15 //沒(méi)注意過(guò),不知道有什么用 PROCESSOR_REVISION=0103 //版本? ProgramFiles=H:\Program Files //應(yīng)用程序的默認(rèn)安裝目錄 PROMPT=$P$G //學(xué)過(guò)DOS的都知道 SESSIONNAME=Console //會(huì)話名稱(chēng)? SystemDrive=H: //系統(tǒng)所在的盤(pán)符 SystemRoot=H:\WINDOWS //系統(tǒng)所在的目錄 TEMP=H:\DOCUME~1\ADMINI~1\LOCALS~1\Temp //當(dāng)前用戶(hù)的臨時(shí)目錄 TMP=H:\DOCUME~1\ADMINI~1\LOCALS~1\Temp //同上 USERDNSDOMAIN=MCSE.COM //當(dāng)前用戶(hù)所在的域的DNS表示 USERDOMAIN=MCSE //NETBIOS表示 USERNAME=administrator //當(dāng)前用戶(hù)名 USERPROFILE=H:\Documents and Settings\Administrator //當(dāng)前用戶(hù)的配置文件目錄 windir=H:\WINDOWS //windows所在的目錄,總是跟systemroot一樣
版權(quán)所有,轉(zhuǎn)載請(qǐng)注明出處!
如果對(duì)本文有不解之處,可以聯(lián)系本人(yeduwu@163.com)。或在此博客留言。
有不同見(jiàn)解者,亦可以通過(guò)上述通道聯(lián)系本人。。歡迎指教。