시작 하며 ...
매일 네이버 검색을 해서 펌 질만 하다가 이제서야 내가 작업을 했던 걸 올리네요..ㅡㅡ;;;
사실 회사에서 문서화 작업을 하며 만든 걸 가져다 올린 것이긴 하지만...
아무튼 Doxygen에 처음 접하는 사람들에게 유용하였으면 합니다. 붙여넣기 신공을 펼치긴 했지만
아무튼... 전 이만...
* Doxygen 이란?
- Doxygen은 소스상에서 간단한 주석으로 문서를 만들 수 있도록 도와주는 유틸리티로써 다양한 언 어에 대해서 지원이 가능하며 팀 작업상에서 유용한 정보를 제공 할 수 있다.
* Doxygen 프로그램의 이용법
ㅡ.,ㅡ;;; 많기도 하다.
* 문서화를 위한 명령어
명령어 | 설명 |
/*! .... 생략 .... */ | 각 명렁어를 묶는 주석 |
\class | 클래스 이름 |
\brief | 설명 |
\date | 날짜 |
\author | 작성자 |
\f | 함수명 |
\param | 파라메터 |
\return | 리턴값 |
\defgroup | 그룹 생성 |
\addtogroup | 생성된 그룹에 추가 |
* 명령어의 사용 예
- 클래스와 함수에 대한 주석 예제
///////////////////////////////////////////////////////////////
/*! <- 여기서부터
\class QtClass 클래스의 이름을 기입
\breif 테스트를 위한 클래스 클래스에 대한 설명부
\date 2008-06-21 작성된 날짜
*/ <- 여기까지 하나의 클래스의 주석이 된다.
///////////////////////////////////////////////////////////////
class QtClass
{
private :
int m_iNumber;
float m_fNumber;
char m_strName[128];
public :
///////////////////////////////////////////////////////////////
/*!
\f Init()
\brief 초기화함수
\date 2008-06-21
\author 문성민
\param void
\return void
///////////////////////////////////////////////////////////////
*/
void Init();
};
- 위 예제 소스를 문서화 하였을 때에 위 사진과 같이 나오게 된다. -
///////////////////////////////////////////////////////////////
/*!
\addtogroup QtClassGroup QtClassGroup에 추가 한다
\{ 그룹에 추가 범위의 시작
\date 2008-06-21
\breif QtClass_2를 그룹에 추가함
*/
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
/*!Details about
\class QtClass_2
\breif 테스트용
\date 2008-06-21
*/
///////////////////////////////////////////////////////////////
class QtClass_2 : public QtClassBase
{
private :
int m_iNumber;
QtClass_1* m_pQtClass_1;
public :
/*! \f \brief 속성변경 \date 08-06-21 \author 문성민 */
int SetProperty( int I );
~QtClass_2(); ///< 기본소멸자
};
/** \} */ 그룹 추가 범위의 끝
*** 여기서 중요한 것은 \{ ...... \} 중괄호 중간에 클래스나 함수가 있어야 된다.
- 그룹화를 하였을 때에 되는 문서화 예제
* 클래스 계층도에 대한 예제
- 클래스 계층도는 Export 설정에서 Diagram 옵션을 끄게 되면 나오지 않는다.
* 메인 페이지를 꾸밀 시에 예제
/** \mainpage Doxygen Test 메인 페이지의 제목을 설절
\section developer 개발자 개발자에 대한 이름
- 문성민
\section info 개발목적 개발 목적
- Doygen 문서테스트용소스
\section advenced 추가정보 추가적인 정보를 여기서 넣으면 된다.
- 글머리는'-' 태그를사용하면되며
- 탭으로들여쓸경우하위항목이된다.
-# 번호매기기는'-#' 방식으로할수있다.
-# 위와같이탭으로들여쓸경우하위항목이된다.
-# 두번째하위항목
- 이런식으로그림을넣을수도있다.
\image html gom.jpg // 이미지를 넣을 수 있다.
*/
* 매크로 작성법
매크로에 대한 작성은 비주얼 베이직을 이용하여 작성을 할 수 있다.
Tools -> Macro -> Macro Explorer 를 선택을 하면 우측에 Explorer창이 뜨게 된다.
여기서 New Macro Project를 선택을 하여 새로운 프로젝트를 생성을 하여 아래 코드를 입력을 한다.
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module AddGroup
Sub InsertModuleComments()
Dim module_name As String
module_name = InputBox("추가클래스이름:") // 다이얼로그 박스를 띄워서 이름을 입력을 한다.
If (module_name <> "") Then
Dim textSelection As EnvDTE.TextSelection
textSelection = DTE.ActiveWindow.Selection
textSelection.Insert("///////////////////////////////////////////////////////////////") // 텍스트를 추가 한다.
textSelection.NewLine() // 줄을 바꾼다.
textSelection.Insert("/*!")
textSelection.NewLine()
textSelection.Insert("\addtogroup " + module_name) // + 연산으로 문자열을 추가 할 수 있다.
textSelection.NewLine()
textSelection.Insert("\{")
textSelection.NewLine()
textSelection.Insert("\date " + Format(System.DateTime.Now, "yyyy/MM/dd")) // 자동으로 현재 날짜를 입력해준다.
textSelection.NewLine()
textSelection.Insert("\breif ")
textSelection.NewLine()
textSelection.Insert("*/")
textSelection.NewLine()
textSelection.Insert("///////////////////////////////////////////////////////////////")
textSelection.NewLine()
textSelection.Insert("/** \} */")
End If
End Sub
End Module
위 예제는 그룹을 추가 할 때에 대한 매크로이다.
이를 컴파일을 하고 Tools -> Customize -> Keyboard 를 선택을 하여 단축키로 등록을 한다.
댓글 없음:
댓글 쓰기