본문 바로가기

프로그램 경험/C/C++

[VC++] Unhandled exception in RichProject.exe (MFC42D.DLL): 0xC0000005: Access Violation.


아놔!!!!!!!!!!
뭘 못하겠다!!!!!!!!!!!!
뭐 하나 하려고 하면 다 오류냐!!!!!! 
대체 이건 왜 오류냔 말이다!!!!!!!!!!!!!!!!!!!!!!

void CRichProjectDlg::WriteLog(LPCTSTR s)
{
CString str_log;
GetDlgItemText( IDC_EDIT_LOG, str_log);
}

몇시간후...

불타오르는 분노를 가라앉히고 영화 좀 보다가 다시 생각해 보았다.
WriteLog를 호출하는 부분은 모달창에서 호출하는 부분이었다.
쓰레드가 달라서 생기는 문제가 아닐까 하는 생각이 들었다.

하지만 VC++에서는 어떻게 해결해야 하는지를 모르기 때문에 다시 고민에 빠졌다.
그러던 중 호출하는 부분이 좀 이상하다는 생각이 들었다.

//CDlg_tTest *dlg_Test = new CDlg_tTest(); 
CDlg_tTest *dlg_Test = new CDlg_tTest(this);  //이렇게 하니 된다...
dlg_Test->Create(dlg_Test->IDD, NULL);
dlg_Test->ShowWindow(SW_SHOW);

this로 현재 함수가 있는 녀석의 포인터를 넘겨주니까 문제가 사라졌다.
젠장...책을 몇권 읽어야 될것 같다...ㅡㅜ