본문 바로가기

나머지/IT개발.잡다한것.82

"stdafx.cpp" "stdafx.h" precompiled header 윈도우 프로그래머라면 precompiled header가 익숙할 것이다. stdafx.h 바로 그 녀석이다. C/C++ 컴파일러의 컴파일 단위는 무조건 .c/.cpp 하나씩이다 (여담으로 그래서 파일간, 즉 .obj 파일들 넘어서 최적화 하는 것이 쉽지 않다). 그래서 개개의 .c/.cpp 파일을 컴파일할 때 #include를 하는 모든 헤더를 당연히 매번 파싱 해야한다. 간단한 프로그램은 괜찮은데, windows.h 와 같이 덩치가 무지 큰 헤더 파일을 #include하는 모든 파일을 매번 컴파일하면 시간이 상당히 걸린다. Precompiled header는 이런 비용을 줄이기 위해 나온 것으로 특정 헤더 파일을 미리 파싱한 결과물을 .pch 파일로 덤프시킨다. 그리고 다른 파일들은 이 .pch를 단순.. 2012. 10. 22.
used static DLL 정적 DLL 사용 [MFC] MFC 응용프로그램 배포 시, MFC 사용 방법을 프로젝트 설정에서 설정해준다. 공유 DLL에서 MFC 사용 : 응용프로그램 배포 시 mfc**.dll 파일을 함께 배포.정적 DLL에서 MFC 사용 : 응용프로그램의 실행 파일에 mfc**.dll 이 포함되어 배포되기 때문에 응용프로그램만 배포.  배포 시 응용프로그램만 배포하는게 관리하기도 편하고 오작동의 가능성도 적기 때문에 "정적 DLL 에서 MFC 사용" 으로 프로젝트를 설정하여 개발하게 된다.  응용프로그램이 DLL 일 경우 위와 같이 설정하면 컴파일 시 다음과 같은 오류 메시지가 발생한다.fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds다음과 같이 설정해 주자.1.. 2012. 10. 22.
[MFC,윈도우 프로그래밍] 핸들 얻기 (HWND hWnd) 예제있는 코드를 복사하려고하는데 에러가난다...m_hWnd가 없다고 에러난다.bi.hwndOwner= m_hWnd; //예제코드 Go To definition을 누르면 아래와 같은소스가 있다 파일은 afxwin.hclass CWnd : public CCmdTarget{DECLARE_DYNCREATE(CWnd)protected:static const MSG* PASCAL GetCurrentMessage(); // Attributespublic:HWND m_hWnd; // must be first data member 왜 저렇게 했는지 모르겠다 그래서 밑에와 같은 소스로 변경 CWnd *pWnd = AfxGetMainWnd(); HWND hWnd = pWnd->m_hWnd; bi.hwndOwner = hWn.. 2012. 10. 19.
AssertValid()에 대해.. AssertValid()에 대해 잘나와있다. http://artwook.tistory.com/entry/ASSERTVALID-AssertValid-Dump MSDN형님http://msdn.microsoft.com/en-us/library/t2za4dew(v=vs.100).aspx The definition of "validity" depends on the object's class. As a rule, the function should perform a "shallow check." That is, if an object contains pointers to other objects, it should check to see whether the pointers are not null, but it .. 2012. 10. 19.
반응형