본문 바로가기

Language/MFC

MFC Class 삭제 하는 방법

- 생성한 Class를 간단히 완전제거 MFC  (1)
프로젝트에 보면 *.clw 화일이 클래스정보를 가지고 있거든요

첫번째) "FileView"에서 클래스에 대한 화일을 제거
두번째) 그 화일이 있는 폴더로 가서 화일 제거
세번째) 그 화일의 내용을 가지고 있었던 프로젝트로 가서 clw화일을 제거

그 후 다시 똑같은 이름의 클래스를 생성하시면 똑같은 클래스 이름이 있다는
에러 메세지가 안뜰겁니다.
clw화일을 만들려면 클래스 위자드(Ctrl + w : 비쥬얼 스튜디오 6 기준)를 누른 후
clw화일이 제거된 프로젝트로 이동하시면 파일이름을 넣으라고 나오는데
그때 clw화일의 이름을 확장자와 함께 넣으시면 됩니다.


- 생성한 Class를 간단히 완전제거 MFC  (2)
간단한 예로 설명을 시작하자면, 우선 ClassWizard나 Workspace창에서 CTest라는 Class를 추가했다고 합시다. 그런데 CTest의 Parent Class를 잘못 선택해서 생성시켜버렸을 때 어떻게 하시겠습니까? 더군다나 동일한 이름을 고수해야만 하는 경우라면...
물론 생성된 Source code를 변경해도 되지만 그리 쉽게 되지않는 경우도 있습니다.
이럴때 혹은 기타의 경우 생성된 클래스를 삭제한다는 것은 쉽지 않습니다.
FileView에서 Test.h와 Test.cpp만 삭제하면 되지 않느냐고요?
물론 그렇게 하면 Workspace에서 빠지지만 동일한 이름으로 class를 다시 만들수는 없을 겁니다. 왜냐하면 *.clw라는 화일에 그 클래스에 관한 정보가 고스란히 남아있기 때문이죠. 제가 한때 어렵게 알아낸 방법은 *.clw화일을 편집하는 거였는데 상당히 번거롭고 귀찮더라구요. 그래서 제가 쓰는 방법을 소개합니다.

(1) FileView에서 관련 화일을 지운다. (위의 예로 치면, Test.cpp와 Test.h)
(2) 작업중인 Project Folder로 가서 Test.cpp와 Test.h 그리고 *.clw 화일 3개를 모두 지운다.
(3) ClassWizard를 실행시킨다. 그러면 *.clw화일이 삭제 되었기 때문에 클래스 정보를 알수 없다는 메세지가 나올것이다.
(4) 그리고 연달아 나오는 다이얼로그 박스에서 가장 아래에 있는 ListBox의 모든 내용을 선택해서 삭제하고 Add All버튼을 누르면 새로운 *.clw화일이 생성되면서 CTest가 빠진 모든 클래스 정보가 재구축된다.
(5) 그리고 자신이 원하는 작업(CTest의 재생성)을 하면 된다.