강의 도중에 교재에 있는 내용을 그대로 쳤는데도 에러가 나고 컴파일 되지 않을 경우, 에러를 찾기가 무척이나 힘듭니다. 저도 격어봐서 알지만, 자기가 짠 코드에서 철자 하나 틀리고 넘어가면 기본 20분은 헤매고 다닐거란 생각이 듭니다. 그래서, 대학 강의 받으러 다닐 때, 저는 참 winDiff 를 많이 사용한거 같군요. 두개의 소스 코드를 비교해 주는 프로그램입니다. 실행 후 File 메뉴를 보면 Compare File 과 Compare Directories 항목이 있는데요, Compare Directories 를 누르고, Dir 1에는 원본, Dir 2에는 자신이 책이나 강의 교재를 보고 짠 코드를 선택하면 다른 부분이 있는 파일을 빨간색으로 보여줍니다. (다만, 원본과 교재를 보고 짠 코드의 파일 ..
사용하다가 주로 격는 에러만 몇 가지 정리해 봅니다. 1. error C2065 : 'i' : undeclared identifier 변수를 잘못 선언하거나 선언하지 않은 경우 발생 2. error C2509 : 'OnLButtonDown' : member function not declared in 'XXXDlg' 함수를 잘못 선언하거나, 선언하지 않은 경우 발생 3. error LNK2001 : unresolved external symbol "protected: void_thiscall XXXDlg::OnLButton(....)" 함수를 선언만 해 놓고 소스 코드에 구현하지 않은 경우에 발생합니다. 4. MDI(다중도큐먼트)기반 프로그램에서 헤더파일을 인클루드 할 때에는 다음과 같이 도큐먼트 헤더가..
1. 스레드의 생성 CWinThread *pThread = ::AfxBeginThread(ThreadFunc, LPVOID) ThreadFunc : 스레드로 구동시킬 함수의 이름 LPVOID : 스레드에 넘겨줄 함수의 데이터나 구조체, 클래스의 포인터 2. 스레드의 구동 스레드에 들어갈 함수는 전역으로 다음과 같이 선언됩니다. UINT ThreadFunc(LPVOID param); 3. 스레드 종료 스레드 생성시 만든 pThread 포인터를 이용하여 TerminateThread 함수를 호출할 수 있습니다. 하지만, 스레드를 강제 종료시키는 일은 스레드가 자신이 사용한 메모리를 해제하는 일 등의 정리할 기회도 없이 갑자기 종료되므로, 많은 문제를 일으킬 수 있습니다. 따라서, 다음과 같이 while문의 조..
SDI 에서의 각 부분 상호 참조. //각각 헤더파일 include #include "MainFrm.h" //메인프레임 헤더파일 #include "ClassDoc.h" //Doc클래스 헤더파일 #include "ClassView.h" //View를 include 할때는 반드시 Doc 헤더파일이 위에잇어야한다 #include "Class.h" //APP Class 의 헤더파일 //App 클래스에서 View, Doc 참조 CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd(); //App -> MainFrm CClassView *pView=(CClassView *)pMain->GetActiveView(); //App -> MainFrm -> View CClassDoc *pDoc..