Purpose-built post

이 포스트는 비쥬얼 스튜디오 2005/2008 을 사용 하는 중 발생 하는 버그를 우회시키는 방법을 알리고자 만들었다. 나는 이 버그로 인해 자그마치 2시간 동안 ... - 익필

Content

이 버그는 비쥬얼 스튜디오 2005/2008에서 MFC로 다이얼로그에 이벤트를 추가할 때, 자동으로 코드가 생성되지 않는 버그 이다. 이때 다음과 같은 에러 메시지가 팝업 메세지로 뜬다.

Add/Remove operation is impossible, because the code element (null) is read only

꼭 자동 코드 생성을 사용하지 않고, 수동으로 하여도 되지만, 불편하다. 그러므로 우회 하는 방법 4가지를 정리 한다.

1. 우회 방법 1

먼저 비쥬얼 스튜디오에서 솔루션을 종료 했다가. 다시 켜 본다.

2. 우회 방법 2

방법 1도 안될 경우, 솔루션을 킨 상태에서, 각 모드별(디버그 릴리즈 등등)로 "솔루션 비우기"를 실행한다. 그런 후 솔루션을 닫고, VC++ Intellisence Database 파일인 ncb 파일, Visual Studio Solution User Options 파일인 suo 파일, Visual Studio Project User Options file인 vcproj.(username).user 파일 삭제 한다. 그런후 다시 솔루션을 키고 해본다.

3. 우회 방법 3

방법 2이 안될 경우, 해당 솔루션 폴더 체로 "읽기 속성"을 없앤다.

4. 우회 방법 4

방법 3이 안될 경우, 해당 다이얼로그 cpp에 추가되지 않은 이벤트가 매세지 맵에 들어 있나 살펴 본다. 예를 들어서 WM_CREATE 이벤트가 만들어지지 않는다면, 해당 다이얼로그.cpp 중 BEGIN_MESSAGE_MAP( ...., ...) ~ END_MESSAGE_MAP() 에 ON_WM_CREATE() 가 있을 경우, 삭제 하고, 다시 해 본다.

이 1 ~ 4 까지의 방법으로도 해결이 안된다면, 마이크로 소프트에 연락하여, 피드백 받는 수 밖에 없을 것이다. : )

Digression

  • 나 같은 경우, 우회방법 2와 우회방법 4가 동시에 발생 되어서, 증상 파악조차 안되었다.

  • 비쥬얼 스튜디오 2008을 사용 중 서명없는 UTF-8 로 파일을 구성했을 때, 컴파일을 하면, C4819 오류가 뜨는 것이다. 이 사실을 "한글"로 마이크로 소프트에 알렸다. 그때 받은 답변은, "We would greatly appreciate it if you could submit this issue again in english." 였다.


저작자 표시
신고
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요

  1. yamoe 2010.11.02 10:29 신고  Addr  Edit/Del  Reply

    혼자 한참 고민하다 님 도움으로 해결합니다.
    전 우회방법2에서 해결되었습니다.
    감사합니다.

  2. 그리핀 2010.12.04 13:43 신고  Addr  Edit/Del  Reply

    저도 검색을 통해 님이 쓰신 글을 통해 해결하였습니다.
    저도 우회방법2에서 해결이 되었군요...-_-;;
    감사합니다.

  3. 과객 2013.04.25 15:52 신고  Addr  Edit/Del  Reply

    2번으로 해결하였습니다 출처남기고 퍼가겠습니다 감사합니다