본문 바로가기
컴퓨터/디버깅

지원되지 않는 작업을 시도했습니다.

by adnoctum 2010. 4. 19.
다음과 같은 에러 메세지가 떴다(VC9)


"지원되지 않는 작업을 시도했습니다." 라는 문구가 나타났는데, 이것은 주로 DDX 로 연결되어 있는 컨트롤을 삭제했을 경우, DDX로 연결하는 부분은 삭제가 되지 않고 남아 있을 때 발생한다. 즉, dialog-template 에서 resource editor 에서 컨트롤을 지웠으면 그 컨트롤에 연결된 DDX 부분이 코드에서 삭제되어야 함에도 불구하고 자동으로 삭제되지 않으면 DDX로 없는 컨트롤을 연결시키려 하기 때문에 위와 같은 에러가 발생한다.

따라서 다음과 같이 해결한다.

1. DDX로 연결하는 부분으로 가서 없어진 컨트롤과 연결시키는 부분을 없앤다.

void CPerfusionCalculatorDLG::DoDataExchange(CDataExchange* pDX)

{

    CDialog::DoDataExchange(pDX);

    DDX_Control(pDX, IDC_BTN_IMAGE_DATA_PATH, _btnImageDataPath);

    DDX_Control(pDX, IDC_EDT_IMAGE_DATA_PATH, _edtImageDataPath);

    DDX_Control(pDX, IDC_BTN_MAKE_RID, _btnMakeRID);

    DDX_Control(pDX, IDC_BTN_CALCULATE_PR, _btnCalculatePR);

    DDX_Control(pDX, IDC_LIST1, _lcDataReport);

    DDX_Control(pDX, IDC_LC_REPORT2, _lcReport);

    DDX_Control(pDX, IDC_TB_RID_IMAGE, _tabRID);

    DDX_Control(pDX, IDC_BTN_CHANGE_ONSET_TIME, _btnChangeOnsetTime);

    DDX_Control(pDX, IDC_SLD_MAX_RID_TIME_DRAW, _sldMaxRIDTimeDraw);

    DDX_Control(pDX, IDC_CMB_DRAW_MODE, _cmbRIDDrawMode);

    DDX_Control(pDX, IDC_CHK_MAKE_PERF_MAP, _chkMakePerfMap);//이 줄이 없어져야 함.

}


2. 문제가 생기는 것은 아니지만 컨트롤 변수도 없애자.

protected:

    // If not set, skip making perfusion map while calculating perfusion rate.

    CButton _chkMakePerfMap; // 이 변수는 지워진 컨트롤에 연결되었던 변수이다.





'컴퓨터 > 디버깅' 카테고리의 다른 글

undefined reference to  (0) 2010.05.18
declaration of OOO shadows a parameter  (0) 2010.05.18
unresolved external symbol  (0) 2010.04.19
Debug Assertion Failed!  (0) 2010.04.19
Iteration over non-sequence  (0) 2010.04.16