참조 URL - http://www.gpgstudy.com/gpgiki/DoxygenTutorial
1. 필요파일 다운로드
노트패드 같은것으로 이 파일을 열어서 OUTPUTLANGUAGE를 Korean으로 고친다.
Doxybar - 퍼온다. 필요한 부분만 코멘트 처리함
#define 이나 그외 다른것들은 그냥 위에다가 /** */ 한줄써주면 되니깐 걍 알아서들 하시고
귀차니즘을 없애기 위해 비주얼씨에 매크로를 만들어봅시다.
3. 매크로 만들기
다음은 그냥 매크로를 만들어본건데요,
대충 기본적인 매크로좀 보고 구성좀 바꾸어봤는데 매크로 쓰는법도 설명을 해볼께요
Tools메뉴에 Macro라는 걸 선택하믄 매크로 창이 뜹니다.
요기서 Edit버튼을 누르면 함수 이름과 설명을 넣으라는데 대충 처넣구
vb문법이 적용된 소스 한장이 나옵니다. 대충 다음을 붙여넣기 해서 매크로를 등록하믄 됩니다.
다음은 독시를 쓰기위해 만들어본 간단한 샘플입니다.
으으으 역시나 주석 부분때문에 보기가 어렵군요
그냥 시간나서 간단하게(?) 만들어봤슴다.
매크로에 대한건 알아서들 하시고
또 중요한건 단축키를 이용해 사용을 하니 온갖 귀차니즘이 다 날라가는 기분을 느꼈는데요
요것두 설명을 드리죠.
Tools메뉴에 Macro를 누르면 매크로 창이 뜨죠, Option >> 을 누르면
Keystrokes 를 누르면 매크로 함수에 대해 단축기 지정이 나온답니다.
저는 왠만한건 매크로를 해놓느라 단축기 자리가 없어 Doxygen에 대한건 Ctrl+D Ctrl+D나 Ctrl+D Ctrl+F 등을 정해놓구
필요할때마다 Ctrl + D D, Ctrl + D F 등을 눌러가며 사용하구 있지요..
독시에 대한 내용은 별로 없고 매크로 예기로 어느새 흘러가버렸군요..
그냥 유용한 팁같아 적어봤습니다.
대충 1시간만의 날림으로 적는 글이라 앞뒤도 안맞을꺼구 오류도 많을 것입니다.
1. 필요파일 다운로드
-
Doxygen - http://www.doxygen.org/index.html
Doxybar - http://doxbar.sourceforge.net/
MS HTML help workshop - http://msdn.microsoft.com/workshop/author/htmlhelp
-
Doxygen과 help workshop은 setup진행
Doxybar는 적절한 위치에 압축을 풀어 놓는다.
(위의 참조 URL에선 path설정이 필요하지만 setup을 한경우는 자동 설정된다.)
-
Doxygen - 기본 설정파일을 만들자 도스창을 열고
doxygen -g
기본파일 (doxyfile)이 생긴다 boxybar설정할때 필요하므로 doxygen폴더에 넣어두자노트패드 같은것으로 이 파일을 열어서 OUTPUTLANGUAGE를 Korean으로 고친다.
Doxybar - 퍼온다. 필요한 부분만 코멘트 처리함
Installation
-
Do the following to install the tool:
- Start developer studio.
- From the "Tools" menu select "Customize...".
- Select the "add-ins and Macro Files" tab.
- Press "Browse" and select files of type "add-ins (.dll)".
- Browse to the location of doxbar.dll and press "open".
- The config menu should now look like this:
- Press "Close".
- A new toolbar should appear:
- From the "Tools" menu select "Customize..." again.
- Select the "Tools" tab and add a new item to the list called doxygen.
- Set the options as follows:
It will be generated by DoxBar.
To avoid a warning from developer studio you could create an empty batch file with that name, but make sure it is writable.
For a convenient output, do not forget to check the Use Ouptut Window checkbox.
- 이그림대로 설정하면된다. bat파일은 자동으로 생성된다. 에러나와도 아니오 누르면된다. - Press "Close".
- Select the "Tools" menu again and remember the number of the user tool called doxygen. For a freshly installed developer studio it should be 6 or 7:
- Press the configure button of the DoxBar add-in ()
- In the "User tool" tab, fill the edit control with "UserTool<number>", where <number> should be the remembered number (e.g. 7).
- In the "File locations" tab
- For the "Batch file" fill in the same path and file as you did in the configure menu.
- Fill in (or browse to) the location of the doxygen executable.
- At the "Configuration template" field you may fill in (or browse to) a Doxygen configuration file.
The settings in this file will be used as a template for the DoxBar tool.
Some options (like INPUT) will be overwritten.
You can run doxygen with the -g option to generate a template configuration file which you may want to place in a template subdirectory.
If you lieve this field blank, you will be asked if you want to create one the first time you execute doxbar on the active project. - Fill in (or browse to) the location of the HTML help compiler (this comes with the HTML Help workshop).
- In the "Help invokation" tab, fill in the informations according to the description done in the Using the HELP feature section
- In the "Auto comment" tab
Please refer to Using the Auto Comment feature section for details
- Press "Ok". All settings will be stored in the system's registry.
사용해보자.
프로젝트를 열고 적절한 주석기호를 사용해서 코멘트를 달면된다.
5. 프로젝트마다 doxygen의 옵션을 따로 설정 가능하며 doxybar 툴에서 옵션을 설정한다.
JAVADOC_AUTOBRIEF, DETAILS_AT_TOP을 개인적으로 사용하며 각종 Output 탭에서 사용할 output만 설정한다.
............................
자..그런데..클래스 다이어그램이라던지 그런 그림을 어디선가 본듯하고 넣고 싶다면???
doxygen메뉴얼을 열어보면 Graphics and diagrams항목이 있다 이대로 설정하자.
다운로드 - http://www.research.att.com/sw/tools/graphviz/
에서 다운받아 설치 하고 HAVE_DOT을 설정하면 그래프를 그려준다.
.................................
이전 버전의 doxygen의 경우 헤더파일에 모든 주석을 달아야 해서 기피했었는데
언제부터인제 .cpp에 주석을 해도 정리를 해주어서 무척이나 편리했다.
/// 이렇게 주석을 달면 doxygen에서 문서화에 포함된다.
/**
*/ 의 javadoc스타일도 있고 메뉴얼을 참조하기 바란다.
......................
http://board6.superboard.dreamwiz.com/board.cgi?db=31_canprog&action=list&no=57&page=1
유용한 팁인것 같아서 무단 복제 한다. ^^;;
Doxygen 사용기 및 팁
주로 C를 사용하느라 몇주전 Doxygen이라는 다큐먼트 프로그램을 사용해봤는데 좀 괜찮은거 같아서 소개해봅니다.Doxygen이 모냐면, 그냥 프로그램 소스 문서화 프로그램이라고 보심 될겁니다.
chm파일까지 만들어줘서 홀랑 반해버렸지요
독시젠이 뭔지 어케 돌아가는건지등의 원론적인 내용은 알아서들 찾아보시고
주로 사용하는(주로라기보다 요것밖에 없는) 비주얼씨 6 에서의 사용법과 팁들을 위주로 말하겠슴다.
자바에선 Javadoc이란게 있다 하는데 이런류의 프로그램을 처음 접해봐서 대충 머릿속에 떠오르는것만 예기 해볼랍니다.
체질이 야메라
정석 사용법은 홈페이지를 참고하세요..
(1) 파일 디스크립션(용어가 참 부적절하네 -_- .. 브리핑이라고 해야하나)
/** \file <파일이름>
\brief <브리핑>
\author <제작자>
\warning <경고성 멘트>
\version <버전>
\date <날짜>
*/
(2) 함수 디스크립션 /** \fn <함수 이름>
\brief <브리핑>
\param <파라메터 설명>
\return <리턴값 설명>
\sa <See also 함수 링크>
\warning <경고성 멘트>
\date <날짜>
*/
대충 주로 사용되는 부분이라 생각되어 요것만 해봤슴다. #define 이나 그외 다른것들은 그냥 위에다가 /** */ 한줄써주면 되니깐 걍 알아서들 하시고
귀차니즘을 없애기 위해 비주얼씨에 매크로를 만들어봅시다.
3. 매크로 만들기
다음은 그냥 매크로를 만들어본건데요,
대충 기본적인 매크로좀 보고 구성좀 바꾸어봤는데 매크로 쓰는법도 설명을 해볼께요
Tools메뉴에 Macro라는 걸 선택하믄 매크로 창이 뜹니다.
요기서 Edit버튼을 누르면 함수 이름과 설명을 넣으라는데 대충 처넣구
vb문법이 적용된 소스 한장이 나옵니다. 대충 다음을 붙여넣기 해서 매크로를 등록하믄 됩니다.
다음은 독시를 쓰기위해 만들어본 간단한 샘플입니다.
으으으 역시나 주석 부분때문에 보기가 어렵군요
Sub AddDoxyDocument()
str = "//************************************************************* Doxygen Style **" + _
vbLf + "/** \file " + ActiveDocument.Name + _
vbLf + "* " + _
vbLf + "* Project Name : <프로젝트> " + _
vbLf + "* " + _
vbLf + "* \brief : <여기 브리핑>" + _
vbLf + "* " + _
vbLf + "* \author : <이름>" + _
vbLf + "* " + _
vbLf + "* \warning : <Warning>" + _
vbLf + "* " + _
vbLf + "* \version : <Ver>" + _
vbLf + "* " + _
vbLf + "* \date : " + CStr(Now) + _
vbLf + "* Last Update date : " + _
vbLf + "* " + _
vbLf + "*/" + _
vbLf + "//******************************************************************************" + vbLf
ActiveDocument.Selection = str
End Sub
'Strips the leading tab spaces.
Function StripTabs (ByVal MyStr)
Do While InStr(MyStr, vbTab) <> 0
MyStr = Right(MyStr, Len(MyStr) - InStr(MyStr, vbTab))
Loop
StripTabs = Trim(MyStr)
End Function
Dim ParamArr () ' Dynamic array to store function arguments.
Sub AddDoxyFunction()
' 선택된 스트링을 얻어온다.
if ActiveDocument.Language = dsCPP Then
Header = StripTabs(Trim(ActiveDocument.Selection))
HeadName = Header
' 리턴값을 얻는다.
if Header <> "" then ' 선택된 문장은 공백이 아니다.
Reti = InStr(Header, " ") ' Header에서 " "을 찾는다.
Loc = InStr(Header, "(") ' Header에서 "("를 찾는다.
if Reti < Loc Then ' " " 이 "(" 전에 나타났다면 올바른 리턴값이다.
RetTp = Left(Header, Reti) ' RetTp는 왼쪽에서 " "가 나타났을때까지다.
Header = Right(Header, Len(Header) - Reti) ' Header는 리턴값부분을 뺀다.
End If
' 함수 이름을 얻는다.
Loc = InStr(Header, "(") - 1 ' "(" 를 찾는다.
Loc2 = InStr(Header, ")") ' ")" 를 찾는다.
if Loc > 0 And Loc2 > 0 then ' ' "(" 와 ")" 가 모두 발견 되었다면
fcName = Left(Header, Loc) ' fcName은 왼쪽에서 "("가 나타나기 전까지이다.
Header = Right(Header, Len(Header) - Len(fcName)) ' Header는 fcName을 잘라낸다.
' Do we have storage type on the return type?
Trim (fcName)
If InStr(fcName," ") <> 0 Then
retTp = retTp + Left(fcName,InStr (fcName," "))
fcName = Right(fcName, Len(fcName) - InStr(fcName," "))
End If
' 함수의 파라메터를 얻는다.
iPrm = 0
iPrmA = 0
prms = Header
' 파라메터의 갯수를 얻는다.
Do While InStr(prms, ",") <> 0 ' "," 문자를 찾는다.
iPrm = iPrm + 1 ' "," 의 갯수를 센다.
prms = Right(prms, Len(prms) - InStr(prms, ","))
Loop
' 파라메터 리스트를 배열에 넣는다.
If iPrm > 0 Then ' 파라메터가 1개 이상이면
iPrm = iPrm + 1
iPrmA = iPrm
Redim ParamArr(iPrm) ' ParamArr을 선언한다.
Do While InStr(header, ",") <> 0 ' "," 를 찾는다.
ParamArr(iPrm) = Left(Header, InStr (Header, ",") - 1) ' "," 이전까지 선택한다.
'Remove brace from first parameter.
If InStr(ParamArr(iPrm), " (") <> 0 Then ' " (" 가 발견되면
ParamArr(iPrm) = Right(ParamArr(iPrm), _
Len(ParamArr(iPrm))-InStr(ParamArr(iPrm)," (")) '
Trim(ParamArr(iPrm)) '
End If
Header = Right(Header, Len(Header) - InStr(Header,",")) ' "," 찾았을때까지의 문자를 뺀다.
iPrm = iPrm - 1
Loop
ParamArr(iPrm) = Header
'Remove trailing brace from last parameter.
If InStr(ParamArr(iPrm), ")") <> 0 Then
ParamArr(iPrm) = Left(ParamArr(iPrm), _
InStr(ParamArr(iPrm), ")") - 1)
Trim(ParamArr(iPrm))
End If
Else 'Possibly one param.
Redim ParamArr(1)
Header = Right(Header, Len(Header) - 1) ' Strip the first brace.
Trim(Header)
ParamArr(1) = StripTabs(Header)
If InStr(ParamArr(1), ")") <> 1 Then
ParamArr(1) = Left(ParamArr(1), InStr(ParamArr(1), ")") - 1)
Trim(ParamArr(1))
iPrmA = 1
End If
End If
'Position the cursor one line above the selected text.
ActiveDocument.Selection.LineUp
ActiveDocument.Selection.LineDown
ActiveDocument.Selection.StartOfLine
ActiveDocument.Selection = vbLf
Descr = "// ======================================== Doxygen Style ==" + _
vbLf + "/** \fn " + HeadName + _
vbLf + " \brief <여기에 브리핑> " + vbLf
'Print the parameter list.
Last = iPrmA
Do While iPrmA <> 0
'Remove a line feed from any of the arguments.
If InStr(ParamArr(iPrmA), vbLf) <> 0 Then
ParamArr(iPrmA) = Right(ParamArr(iPrmA), _
(Len(ParamArr(iPrmA)) - _
InStr(ParamArr(iPrmA), vbLf)))
Trim(ParamArr(iPrmA))
End If
ParamArr(iPrmA) = StripTabs(ParamArr(iPrmA))
'If there are 2+ parameters, the first parameter will
'have a '(' prepended to it, remove it here:
if iPrmA = Last AND Last <> 1 then
ParamArr(iPrmA) = Right(ParamArr(iPrmA), _
Len(ParamArr(iPrmA)) - 1)
End If
Descr = Descr + " \param " + ParamArr(iPrmA) + " : <여기 브리핑>" + vbLf
iPrmA = iPrmA - 1
Loop
Descr = Descr + vbLf + " \return <여기 리턴 브리핑>" + _
vbLf + " \sa <여기 See Also>" + _
vbLf + " \date " + CStr(Now) + _
vbLf + "*/" + vbLf + _
"// =========================================================" + vbLf
ActiveDocument.Selection = Descr
Else
MsgBox("It is possible that the function you are trying to"+_
" work with has a syntax error.")
End if
End If
Else
MsgBox("You need to have an active C/C++ document open"+ _
vbLF+"with the function prototype selected.")
End If
End Sub
그냥 시간나서 간단하게(?) 만들어봤슴다.
매크로에 대한건 알아서들 하시고
또 중요한건 단축키를 이용해 사용을 하니 온갖 귀차니즘이 다 날라가는 기분을 느꼈는데요
요것두 설명을 드리죠.
Tools메뉴에 Macro를 누르면 매크로 창이 뜨죠, Option >> 을 누르면
Keystrokes 를 누르면 매크로 함수에 대해 단축기 지정이 나온답니다.
저는 왠만한건 매크로를 해놓느라 단축기 자리가 없어 Doxygen에 대한건 Ctrl+D Ctrl+D나 Ctrl+D Ctrl+F 등을 정해놓구
필요할때마다 Ctrl + D D, Ctrl + D F 등을 눌러가며 사용하구 있지요..
독시에 대한 내용은 별로 없고 매크로 예기로 어느새 흘러가버렸군요..
그냥 유용한 팁같아 적어봤습니다.
대충 1시간만의 날림으로 적는 글이라 앞뒤도 안맞을꺼구 오류도 많을 것입니다.
댓글
댓글 쓰기