vbvc编码规范.docx
- 文档编号:1164610
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:15
- 大小:23.09KB
vbvc编码规范.docx
《vbvc编码规范.docx》由会员分享,可在线阅读,更多相关《vbvc编码规范.docx(15页珍藏版)》请在冰点文库上搜索。
vbvc编码规范
VB、VC编码规范
文件编号
发布日期
共11页
1.VB
2.VC
版本号:
第3版受控印章:
受控
新发布
修改状态
修该页码
修改者
修改时间
生效日期
/
0
/
/
/
2004.06.30
1VB部分
1.1控件前缀
控件类型
前缀
例子
3DPanel
pnl
PnlGroup
Animatedbutton
ani
AniMailBox
Checkbox
chk
ChkReadOnly
Combobox,drop-downlistbox
cbo
CboEnglish
Commandbutton
cmd
CmdExit
Commondialog
dlg
DlgFileOpen
Communications
com
ComFax
Control
ctr
CtrCurrent
Datacontrol
dat
DatBiblio
Data-boundcombobox
dbcbo
DbcboLanguage
Data-boundgrid
dbgrd
DbgrdQueryResult
Data-boundlistbox
dblst
DblstJobType
Directorylistbox
dir
DirSource
Drivelistbox
drv
DrvTarget
Filelistbox
fil
FilSource
Form
frm
FrmEntry
FormObjectVariable
frmO
FrmOEntry
Frame
fra
FraLanguage
Gauge
gau
GauStatus
Graph
gra
GraRevenue
Grid
grd
GrdPrices
Horizontalscrollbar
hsb
HsbVolume
Image
img
ImgIcon
Keystatus
key
KeyCaps
Label
lbl
LblHelpMessage
Line
lin
LinVertical
Listbox
lst
LstPolicyCodes
MAPImessage
mpm
mpmSentMessage
MAPIsession
mps
mpsSession
MCI
mci
mciVideo
MDIchildform
mdi
mdiNote
Menu
mnu
mnuFileOpen
MSFlexgrid
msg
msgClients
MSTab
mst
mstFirst
OLE
ole
oleWorksheet
Outline
out
outOrgChart
PenBedit
bed
bedFirstName
PenHEdit
hed
hedSignature
Penink
ink
inkMap
Picture
pic
picVGA
Pictureclip
clp
clpToolbar
Report
rpt
rptQtr1Earnings
Shape
shp
shpCircle
Spin
spn
spnPages
Textbox
txt
txtLastName
Timer
tmr
tmrAlarm
UpDown
upd
updDirection
Verticalscrollbar
vsb
vsbRate
Slider
sld
sldScale
ImageList
ils
ilsAllIcons
TreeView
tre
treOrganization
Toolbar
tlb
tlbActions
TabStrip
tab
tabOptions
StatusBar
sta
staDateTime
ListView
lvw
lvwHeadings
ProgressBar
prg
prgLoadFile
RichTextBox
rtf
rtfReport
1.2数据访问对象(DAO)前缀
数据库对象
前缀
例子
Container
con
conReports
Database
db
dbAccounts
DBEngine
dbe
dbeJet
Document
doc
docSalesReport
Field
fld
fldAddress
Group
grp
grpFinance
Index
idx
idxAge
Parameter
prm
prmJobCode
QueryDef
qry
qrySalesByRegion
Recordset
rec
recForecast
Relation
rel
relEmployeeDept
TableDef
tbd
tbdCustomers
User
usr
usrNew
Workspace
wsp
wspMine
1.3菜单前缀
菜单控件除了最前面"mnu"标记以外,菜单控件的前缀应该被扩展:
对每一级嵌套增加一个附加前缀,将最终的菜单的标题放在名称字符串的最后。
下表列出了一些例子。
菜单标题序列
菜单处理器名称
File
mnuFile
FileOpen
mnuFileOpen
FileSend
mnuFileSend
FileSendEmail
mnuFileSendEmail
FileSendFax
mnuFileSendFax
当使用这种命名约定时,一个特定的菜单组的所有成员一个接一个地列在VisualBasic的“属性”窗口中。
而且,菜单控件的名字清楚地表示出它们所属的菜单项。
1.4其它控件前缀
对于上面没有列出的控件,应该用唯一的由两个或三个字符组成的前缀使它们标准化,以保持一致性。
只有当需要澄清时,才使用多于三个字符的前缀。
例如,对于派生的或修改的控件象上述那样扩展其前缀,使得在真正使用了哪一个控件的问题上避免混淆。
对于第三方控件,应该把制造商的小写缩写名附加到前缀中。
例如,从VisualBasicProfessional3D框架中创建的一个控件实例可以用fra3d这样的前缀,以避免混淆所使用的控件。
1.5变量、常量范围前缀
范围
前缀
例子
全局
g
gstrUserName
模块级
m
mblnCalcInProgress
本地到过程
dblVelocity
1.6变量、常量类型前缀
数据类型
前缀
例子
Boolean
bln
blnFound
Byte
byt
bytRasterData
Collection
col
colWidgets
Currency
cur
curRevenue
DateTime
dtm
dtmStart
Double
dbl
dblTolerance
Error
err
errOrderNum
Integer
int
intQuantity
Long
lng
lngDistance
Object
obj
objCurrent
Single
sng
sngAverage
String
str
strFName
Userdefinetype
udt
udtEmployee
Variant
Vnt
vntCheckSum
1.7描述变量和过程名
变量或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。
而且,函数名应该以一个动词起首,如InitNameArray或CloseDialog。
对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。
一般来说,超过32个字符的变量名在VGA显示器上读起来就困难了。
当使用缩略语时,要确保它们在整个应用程序中的一致性。
在一个工程中,如果一会儿使用Cnt,一会儿使用Count,将导致不必要的混淆。
1.8用户定义的类型
在一项有许多用户定义类型的大工程中,常常有必要给每种类型一个它自己的三个字符的前缀。
如果这些前缀是以"u"开始的,那么当用一个用户定义类型来工作时,快速识别这些类型是很容易的。
例如,ucli可以被用来作为一个用户定义的客户类型变量的前缀。
1.9代码注释约定
1.9.1代码注释规范
模块节标题注释如下:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'@ModuleName:
(模块名称)
'@MainFunc:
(模块说明)
'@Author:
(作者)
'@LastModify:
(最后修改时间)
'@Include:
(引用外部接口)
'@Interface:
(模块提供接口)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
举例:
frmAccountCard.frm的程序头注释如下
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'@ModuleName:
frmAccountCard
'@MainFunc:
科目卡片窗体
'@Author:
张山
'@LastModify:
2000-06-24
'@Include:
'@Interface:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
程序接口注释:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'@FunctionName:
(函数名)
'@MainFunc:
(函数说明)
'@Author:
(作者)
'@LastModify:
(最后修改日期)
'@Param:
(用参数)
'@Returns:
(返回值类型)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
举例:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'@FunctionName:
AddAccount
'@MainFunc:
直接增加会计科目
'@Author:
张山
'@LastModify:
2000-06-23
'@Param:
strAccount科目字符串
'@Param:
strPath科目币种数据所在路径
'@Param:
blnIsCopy由科目复制来标志
'@Returns:
Integer
''
1.10窗体隐含全局变量
避免使用窗体隐含全局变量,声明自己的窗体变量(例如,DimdlgAboutAsNewfrmAboutBox)。
1.11命名属性、方法和事件
尽量用完整的词,不用缩写。
缩写可能有许多形式,并因此可能含混。
如果完整的单词太长的话,可以用完整的第一个音节。
对于标识符,可以用大小写混合的写法,每个单词或者音节的首字符大写,例如ShortcutMenus或者AsyncReadComplete。
对于集合类名,可以用复数写法。
如果集合中有以"s"结尾的对象,可将单词"Collection"附加在其后面。
对于方法名,可以比较一致地用动词/对象或者对象/动词的顺序。
也就是说,使用InsertWidget、InsertSprocket,等等,或者总是将对象放在前面,就象例子WidgetInsert和SprocketInsert那样。
1.12常数使用
在VB中已经定义了常数的情况下,必须采用常数,避免采用数值的使用对程序可读性产生不良影响。
可以明显看出以下代码的优劣:
frmWizard.ShowVBModalfrm1.Show1
MsgBox"Infomation","Title",VBInformationMsgBox"","",1
1.13MsgBox书写要求
消息框要求显示的信息分为四类:
信息,问题,警告,错误。
所有显示的消息框都必须包含上述四类之一的图标;消息框显示的标题代表所运行的程序模块标题,必须用汉字标题,内容为详细的具体信息;
如果是对数据范围非法的警告,必须提示出合法的边界值。
例如用户输入登录时间时提示“登录时间非法”,用户尝试两三次其他时间后仍然无法正确登录,必然对使用软件失去信心,如果直接提示出允许的登录时间范围,用户马上就可以录入正确的数据。
对于数值的确认,需要提示出需要的数据值。
推荐的例子:
MsgBox“请确认是否删除本分录(109)?
”,“凭证处理”,VBQUESTION+VBYESNOCANCEL
MsgBox“张出纳,您没有帐册查询权限!
”,“帐册查询”,VBEXCLAMATION
MsgBox"登录时间不能超过帐套结束时间1999-12-31!
",App.Title,VBEXCLAMATION
1.14SQL语句书写要求
SQL语句要求将SQL保留字全部采用大写,其余部分如字段名、表名等采用其自然定义的大小写格式,推荐采用大写开头字符的方式;语句中的分隔只需要一个空格。
对于条件嵌套复杂的语句,需要在逻辑表达式中加入适当的括号对体现层次,增强语句可读性。
例如:
SELECT*FROMEmployeeWHERE(lngBirthYear>1980ANDstrNameLIKE“A*”)ORDERBYDepartment
为了提高程序可读性,要求必须注释说明每个SQL语句的功能。
1.15源程序编排
源程序编排必须按照结构化程序进行缩格。
缩格要求用一个TAB体现一个结构层次,每个TAB设置为占用4个空格。
每条语句的右边界尽量保持在80个字符范围内,以在编辑器中浏览时不需要横向滚动为宜。
较长的语句要求进行分割。
1.16源文件命名
原则上源文件与对象命名相同,由于文件具有后缀标识文件类别,因此取消对象类别前缀,仅取对象名作为文件名。
例如:
frmMainMain.frm
clsAccountSetupAccountSetup.cls
modPublicPublic.bas
1.17资源ID
CaptionResourceID、ToolTipTextResourceID、HelpContextID、WhatsThisHelpID、WizardStringID、WizardPictureID、WizardSoundID、WizardAVIID等一致,只是偏移量不同,其存储位置优先顺序:
HelpContextID、WhatsThisHelpID、Tag。
2VC部分
2.1C++类的定义形式约定表
类名称:
数据成员:
构造/析构函数:
成员函数:
ClassmyClass
{
public|private|protected:
myDataMembers;
public|private|protected:
myClass();
~myClass();
public|private|protected:
myMemberFunction();
};
2.2头文件的书写顺序约定表
程序注释及变动说明
文件头:
包含的头文件:
符号常数和全局常数:
宏定义:
类型定义:
结构,联合和类定义:
外部变量的声明:
内联函数的定义:
//
#include
const
macro
typedef
struct|union|class
2.3源文件的书写顺序约定表
文件头:
包含的头文件:
私有符号常数和全局常数:
私有宏定义:
私有类型定义:
私有结构,联合和类定义:
外部/全局变量初始化:
函数/成员函数定义:
“程序头书写标准”
#include
const
macro
typedef
struct|union|class
2.4标识符命名约定表
标识符种类
书写规范
示例
函数/过程名
一般标识符
CheckButtonStates
宏标识符
大写标识符
SALES_TAX
类标识符
‘C’+一般标识符
CEditBox
结构标识符
‘S’+一般标识符
SMyStructure
联合标识符
‘U’+一般标识符
UMyUnion
整数标识符
‘i/n/int’+一般标识符
INumber,intCurrent
字符串标识符
‘s/str/lpstr’+一般标识符
sComputerName
逻辑标识符
‘b’+一般标识符
bisDetailed
对象标识符
特征小写字母+一般标识符
FrmStatus,tvwTree
一般标识符:
字母开头,各单词连写,词首字母大写
大写标识符:
字母开头,所有字母大写,单词间用下划线相连
2.5函数头说明规范
函数名称:
函数功能:
调用格式:
参数说明:
对环境引用:
对环境影响:
内部变量说明:
调用函数列表:
被调函数列表:
函数的中文名称
简述函数的功能
必要时可举例说明
列出主要的、不易理解的参数含义和取值范围
(可选的)
(可选的)
(可选的)
(可选的)
(可选的)
2.6修改申明
本编码规范目前是针对开发根据VB和VC来编制的,随着需要的开发工具的变化,本规范的内容也需要做相应更新。
若发现本编码规范有遗漏或不足或者错误之处,允许以各种形式反映到品质管理部,并由其修改模板。
3窗体和控件的取名:
详见命名标准
严禁和受到限制的关键字同名
4显式声明变量
在类模块、窗体模块或标准模块的声明段中加入这个语句:
OptionExplicit
5为便于阅读程序,禁止使用VB的“字符串和数字的自动转化功能”
VB中规定:
如果字符串表示数值,则可将字符串赋予数值变量。
也可将数值赋予字符串变量。
例如,将命令按钮、文本框和列表框放置在窗体中。
在命令按钮的Click事件中输入下列代码。
运行应用程序并单击命令按钮。
PrivateSubCommand1_Click()
DimintXAsInteger
DimstrYAsString
strY="100.23"
intX=strY'将字符串传递给数值变量。
List1.AddItemCos(strY)'将字符串中数值的余弦值。
'添加到列表框中。
strY=Cos(strY)'将余弦值传递给字符串变量。
Text1.Text=strY'在文本框中显示字符串。
EndSub
6在程序中禁止使用END语句
在End语句之后的代码不会执行,也不会再有事件发生。
特别是,VisualBasic将不执行任何窗体的QueryUnload、Unload或Terminate事件过程。
对象的各个引用将被释放,但如果定义有自己的类,VisualBasic将不执行由这些类所创建对象的Terminate事件。
7为增强可读性,不得使用控件值
由于使用控件值,代码的可读性将受影响。
如下行代码设置了TextBox控件Txtname的Text属性值:
Txtname="ThistextisassignedtotheTextpropertyofText1"
应该为Txtname.Text="ThistextisassignedtotheTextpropertyofText1"
8修改代码注释:
在原来有错误的代码前先列出,修改人,修改原因,修改日期;注释原代码,写出新代码,写出新代码结束标志
例如:
‘EditBy张山For变量类型长度不够In2000-09-31
‘源代码
‘lngResult=intCount*100
‘新代码
lngResult=Clong(intCount)*100
‘EditEnd
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vbvc 编码 规范