VC++로 프로젝트를 생성하면
거의 모드 파일에 stdafx.h 를 인클루드하고 있습니다.
결론적으로 말해서 이는 컴파일 시간을 줄이기 위해 사용하는 것이지요.
그냥 무작정 쓰시면 안됩니다. stdafx.h 파일이 없으면 오류가 나거든요.
한번 프로젝트를 생성해서 해당파일을 살펴보세요.
우선 제가 작업중인 프로젝트의 stdafx.h 파일을 살펴볼까요?
다음과 같은 내용이 있네요.
// MFC의 공통 부분과 무시 가능한 경고 메시지에 대한 숨기기를 해제합니다.
#define _AFX_ALL_WARNINGS
#include // MFC 핵심 및 표준 구성 요소
#include // MFC 익스텐션
#include // MFC 자동화 클래스
#include // Internet Explorer 4 공용 컨트롤에 대한 MFC 지원
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include // Windows 공용 컨트롤에 대한 MFC 지원
#endif // _AFX_NO_AFXCMN_SUPPORT
#include // MFC 소켓 익스텐션
여러가지 헤더파일이 인클루드 되어 있네요.
즉 이곳엔, 자주 사용되지만 거의 변경되지 않는 프로젝트 고유의 파일들을 넣습니다.처음에는 그냥 다 컴파일이 됩니다.
하지만 두번째 이상 컴파일을 하면 stdafx.h 에 있는 것들은 컴파일을 안하죠.
변경된게 없으니까요.
이렇게 되면 프로젝트 개발시 컴파일 시간을 매우 줄여줍니다.
예로 파일이 100개인데 변경된게 1개뿐이면 파일 하나만 컴파일하죠.
하지만 이 기능을 사용하지 않는다면 1개만 변경되었다 해도 100개를 다 컴파일 하니
시간이 거의 100배로 들겠죠??
만약 이 기능을 사용하고 싶지 않으시다면
프로젝트 속성에 Not using preheadcomplie 인가? 해주면 됩니다.
2006/08/25 10:53
