블로그 이미지
fiadot_old

칼퇴근을 위한 게임 서버 개발 방법론에 대한 심도있는 고찰 및 성찰을 위한 블로그!

Rss feed Tistory
Technical Article/펌 2005. 10. 11. 18:07

Class Wizard에서 지원안되는 클래스 나타내기

Class Wizard에서 지원안되는 클래스(3thd Party포함)를 Class Wizard에 나타내기 김인식 / iskim71



볼랜드,IBM 툴에 익숙해 있다 얼마전부터 비주얼스튜디오(이름이 넘 거창함)를 이용하여 개발을 하고 있습니다.

MFC로 개발하다 보니 Class Wizard란 넘을 자주 쓰게 되는데 이넘이 잘 나가다 가끔 삼천포로 빠지더군요



지원되는 기본 컴포넌트의 부실로 부득이 하게 3thd Party 클래스들을 이용하고 있습니다.

그런데... 클래스를 새로 생성할때 MFC로 생성하면 상속받을 클래스 선택권이 일방적이더군요...

결국 Generic으로 생성하게 되는데... 그렇게 되면 ClassWizard에 보이질 않는다는게 OTL...



여러 방법으로 삽질(?)을 하다 대략 2가지 방법으로 압축되더군요...



첫번째 방법은 다른 MFC클래스로 상속받은수 코딩으로 수정해준다.(사기치는거 같아 별로 맘에 안듬)



두번째 방법은

1. Generic으로 상속받을 클래스를 명기해주고 생성한뒤,

2. .h 파일이랑 .cpp파일에 MessageMap 선언을 해준다.



<예> Test.h 파일



#if !defined(AFX_TEST_H__214F2136_D953_4915_9669_E0A361C9A1EB__INCLUDED_)

#define AFX_TEST_H__214F2136_D953_4915_9669_E0A361C9A1EB__INCLUDED_



#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000



class CTest : public 상속받을클래스

{

public:

CTest();

virtual ~CTest();



// 요부분 ------------------------------------------------------------------------->>>

protected:

//{{AFX_MSG(CTest)

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

// 요부분 -------------------------------------------------------------------------<<<

};





#endif // !defined(AFX_TEST_H__214F2136_D953_4915_9669_E0A361C9A1EB__INCLUDED_)



<예> Test.cpp 파일



#include "stdafx.h"

#include "Test.h"



#ifdef _DEBUG

#undef THIS_FILE

static char THIS_FILE[]=__FILE__;

#define new DEBUG_NEW

#endif



//////////////////////////////////////////////////////////////////////

// Construction/Destruction

//////////////////////////////////////////////////////////////////////



CTest::CTest()

{



}



CTest::~CTest()

{



}



// 요부분 ------------------------------------------------------------------------->>>

BEGIN_MESSAGE_MAP(CTest, 상속받을클래스)

//{{AFX_MSG_MAP(CTest)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

// 요부분 -------------------------------------------------------------------------<<<





3. 저장하고 비쥬얼스튜디오(역시 거창한 이름...)를 닫는다.



4. 프로젝트 폴더로 가서 프로젝트명.ncb, 프로젝트명.clw 파일을 삭제한다.(백업하던지...)



5. 비쥬얼스튜디오(너 정말 스튜디오 맞아?)를 실행한다.



6. Rebuild All을 한번 꾹~ 눌러준다.



7. Ctrl+W 를 누르면 뭐라뭐라 하고 OK를 누르면 새로 생성하는 화면이 나온다. 여기서 우측아래에 있는

[Add All]버튼을 누르고 OK를 누른다.



8. Class Wizard에 보면 방금 추가한 클래스가 나타난다.



즐프 하시길...
,
TOTAL TODAY