MFC에 클래스를 추가하고

해당 클래스 로직에서 SetTimer / KillTimer를 사용할 경우에

릴리스 모드(Release)모드에서는 애러가 나지 않으나 정상 동작 하지 않고

디버그 모드(Debug)모드에서는 하기와 같이 애러가 날 때가 있다.


---------------------------

Microsoft Visual C++ Runtime Library

---------------------------

Debug Assertion Failed!


Program: ...r\Documents\º´¿ø¿ëÇ÷´ç±â\trunk\DMTool.N\Debug\iCE DM Tool.exe

File: f:\dd\vctools\vc7libs\ship\atlmfc\include\afxwin2.inl

Line: 152


For information on how your program can cause an assertion

failure, see the Visual C++ documentation on asserts.


(Press Retry to debug the application)


---------------------------

중단(A)   다시 시도(R)   무시(I)   

---------------------------

빌드시에 warning도 안 나고 error도 없는 상태라 사람 환장하게 한다.

그렇다고 ontimer 이벤트 내에서 뭔가가 일어나기도 전에 이미 경고가 뜬다.

구글 검색해보면 윈도우가 없어서 발생하는 것이라고 나온다.

그 의미를 몰랐는데.

MFC에서는 윈도우가 없다는 것의 의미는 윈도우에 UI component와 연결되어 있지 않다는 의미인 것이다.

그래서 해당 클래스를 UI Component 아무거나 상속 받은 다음에 하기와 같이 연결해준 상태에서 사용하면 된다.

ex
사용할 클래스 선언.

class CHIDCOM : public CEdit

Dlg 클래스에서의 추가
.h에서
CHIDCOM m_hidCom;

.cpp에서
DDX_Control(pDX, IDC_EDIT_HID, m_hidCom);


by 무위자연 2016. 1. 26. 14:18
| 1 |