Debug Assertion Fail! afxwin2.inl Line: 원인

안녕하세요~ 무과금 유저 데스라 입니다^^
요즘은 다들 안드로이드(java) 개발하시죠?아마도 요즘은 C / C++ 개발하시는 분들은 많이 없을것 같네요~(안드로이드도 C언어를 사용하지만 일반앱들은 사용을 안해도 되니까요~)
자료를 찾아도 C / C++ / MFC / VisualStudio 등의 자료들은 많이 없죠~
개인적으로 MFC는 간단히 뭘 테스트 하는 용도로 사용하기는 편해서 사용하고 있습니다^^당연히 되야 하는데 자꾸 이상한 에러를 뱉어낼때가 있습니다. VisualStudio 가 미쳤나? 라는 생각이 들고 PC를 한대 때리고 싶을때가 있죠 ㅎㅎ

그 중 아래와 같은 에러도 있습니다. 저도 계속 잊을때가 있어서 발견될때마다 하나씩 정리할까 합니다.


  


Debug Assertion Failed! afxwin2.inl 어쩌고 하면서 에러... 재밌는건 릴리즈 버젼으로 하면 잘 됩니다~!! 디버그에서만 발생되죠 ㅎ
MFC가 편리할때도 있지만 엿같을때도 엄청 많습니다. ㅎㅎ
내부적으로 문제는 HWND 가 없어서 발생되는 현상 입니다. MFC에서는 내부적으로 감춰놔서 안보이죠.해당 에러가 발생되는 지점 앞에 this.m_hWnd 값을 찍어서 확인해보세요.아마도 NULL 일 것입니다.



원인은 m_hWnd 값이 없기 때문!!


해결 방법이야 여러가지가 있겠지만, 저는 아래 방법으로 해결 하여 사용합니다.
m_hWnd 값을 유효한 값으로 채워서 해결 합니다.m_hWnd 값을 갖고 있는 모듈에서 m_hWnd 값이 없는 모듈 호출시 해당 값을 인자로 넘겨서 사용하면 됩니다.아니면 유효한 윈도우핸들을 하나 만들어서 사용하고 넘어 가도 될것 같습니다.
각자 편리하실대로 해결하시면 됩니다.
이 글을 쓰는 이유는문제가 될 이유가 없는 곳에서 갑자기 툭하고 Debug Assertion Failed! afxwin2.inl 어쩌고 하면 순간 멍~~ 해집니다.내소스도 아니고..... 뭐지? 예전에 봤었는데 원인이 뭐였었지?? 가물가물
이런 경우가 있어 흔적을 남겨놓습니다~^^ 

댓글 없음:

댓글 쓰기