资源描述:
《vs2008注释宏.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ImportsSystemImportsEnvDTEImportsEnvDTE80ImportsEnvDTE90ImportsSystem.DiagnosticsPublicModuleCOMMENTFunctionStripTabs(ByValMyStr)DoWhileInStr(MyStr,vbTab)<>0MyStr=Right(MyStr,Len(MyStr)-InStr(MyStr,vbTab))LoopStripTabs=Trim(MyStr)EndFunction'生成Doxyge
2、n样式的函数注释PublicSubFunctionDescription()'判断所选择的行DimStartLine,endLine,Temp,tmpLine,Header,Reti,Loc,RetTp,Loc2,fcName,iPrm,iPrmA,prms,ParamArr,LastStartLine=ActiveDocument.Selection.TopLineendLine=ActiveDocument.Selection.BottomLineIfendLine3、nTemp=StartLineStartLine=endLineendLine=TempEndIf'如果行数大于1,则将各行的字符串合成一个字符串tmpLine=StartLineDoWhiletmpLine<=endLineActiveDocument.Selection.GoToLine(tmpLine)ActiveDocument.Selection.SelectLine()Header=Header&StripTabs(Trim(ActiveDocument.Selection.text
4、))tmpLine=tmpLine+1Loop'把回车换成空格Header=Replace(Header,vbCrLf,"")ActiveDocument.Selection.GoToLine(StartLine)IfHeader<>""ThenReti=InStr(Header,"")Loc=InStr(Header,"(")IfReti5、Str(Header,"(")-1Loc2=InStr(Header,")")IfLoc>0AndLoc2>0ThenfcName=Left(Header,Loc)Header=Right(Header,Len(Header)-Len(fcName))Trim(fcName)'得到函数名称DoWhileInStr(fcName,"")<>0RetTp=RetTp+Left(fcName,InStr(fcName,""))fcName=Right(fcName,Len(fcName)-InStr(
6、fcName,""))Loop'如果函数名称第一个字符为"*"或"&",则做为返回值最后一个字符IfInStr(fcName,"*")=1ThenRetTp=RTrim(RetTp)+"*"fcName=LTrim(Right(fcName,Len(fcName)-1))EndIfIfInStr(fcName,"&")=1ThenRetTp=RTrim(RetTp)+"&"fcName=LTrim(Right(fcName,Len(fcName)-1))EndIf'对返回值进行处理'去掉virt
7、ualIfInStr(RetTp,"virtual")<>0ThenRetTp=LTrim(Right(RetTp,Len(RetTp)-Len("virtual")))EndIf'去掉inlineIfInStr(RetTp,"inline")<>0ThenRetTp=LTrim(Right(RetTp,Len(RetTp)-Len("inline")))EndIf'去掉staticIfInStr(RetTp,"static")<>0ThenRetTp=LTrim(Right(RetTp,Len
8、(RetTp)-Len("static")))EndIfiPrm=0iPrmA=0prms=HeaderDoWhileInStr(prms,",")<>0iPrm=iPrm+1prms=Right(prms,Len(prms)-InStr(prms,","))LoopIfiPrm>0TheniPrm=iPrm+1iPrmA=iPrmReDimParamArr(iPrm)DoWhileInStr(Header,",")<>0ParamArr(iPrm)=Left(Header,InStr(Head