빠른 질문 - 왜 프리 컴파일 된 헤더를 사용합니까?왜 미리 컴파일 된 헤더 (C/C++)를 사용합니까?
편집 : 응답을 읽기 , 나는 내가 그들과 함께해온 것은 좀 바보 의심 :
#pragma once
//Defines used for production versions
#ifndef PRODUCTION
#define eMsg(x) (x) //Show error messages
#define eAsciiMsg(x) (x)
#else
#define eMsg(x) (L"") //Don't show error messages
#define eAsciiMsg(x) ("")
#endif //PRODUCTION
#include "targetver.h"
#include "version.h"
//Enable "unsafe" but much faster string functions
#define _CRT_SECURE_NO_WARNINGS
#define _SCL_SECURE_NO_WARNINGS
//Standard Includes
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <direct.h>
#include <cstring>
#ifdef _DEBUG
#include <cstdlib>
#endif
//Standard Template Library
#include <bitset>
#include <vector>
#include <list>
#include <algorithm>
#include <iterator>
#include <string>
#include <numeric>
//BOOST libraries
#include <boost/algorithm/string.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/scoped_array.hpp>
//Windows Includes
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include "FILETIME_Comparisons.h"
#include <shlwapi.h>
#include <Shellapi.h>
#include <psapi.h>
#include <imagehlp.h>
#include <mscat.h>
#include <Softpub.h>
#include <sfc.h>
#pragma comment(lib, "wintrust.lib")
#pragma comment(lib,"kernel32.lib")
#pragma comment(lib,"Psapi.lib")
#pragma comment(lib,"shlwapi.lib")
#pragma comment(lib,"imagehlp.lib")
#pragma comment(lib,"Advapi32.lib")
#pragma comment(lib,"Shell32.lib")
#pragma comment(lib,"Sfc.lib")
#pragma comment(lib,"Version.lib")
//Crypto ++ Libraries
#ifdef _DEBUG
#pragma comment(lib,"cryptlibd.lib")
#else
#pragma comment(lib,"cryptlib.lib")
#endif
#define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
#include <md5.h>
#include <sha.h>
//String libraries
#include "stringUnicodeConversions.h"
#include "expandEnvStrings.h"
#include "randomString.h"
#include "getShortPathName.h"
//Regular Expression Libraries
#include "fpattern.h"
//File Result Record
#include "unixTimeToFileTime.h"
#include "fileData.h"
//Writer
#include "writeFileData.h"
//Criteria Structure System
#include "priorities.h"
#include "criterion.H"
#include "OPSTRUCT.H"
#include "regexClass.H"
#include "FILTER.h"
//Sub Programs Root Class
#include "subProgramClass.h"
//Global data
#include "globalOptions.h"
//Logger
#include "logger.h"
//Console parser
#include "consoleParser.h"
//Timeout handler
#include "timeoutThread.h"
//Zip library
#include "zip.h"
#include "unzip.h"
#include "zipIt.h"
//Scanner
#include "mainScanner.h"
#include "filesScanner.h"
//Sub Programs
#include "volumeEnumerate.h"
#include "clsidCompressor.h"
#include "times.h"
#include "exec.h"
#include "uZip.h"
//64 Bit support
#include "disable64.h"
Visual Studio에서 중요한주의 사항 : 각 헤더의 첫 번째 #include는 #include "stdafx.h"인지 확인하십시오. 그렇지 않으면 파일이 구문 분석되지 않습니다! 바보, 알아. 그러나 만드는 것은 쉬운 실수입니다. – rlbond
보다 구체적으로, 위의 모든 항목은 "stdafx.h"를 포함하여 구문 분석되지 않습니다. http://en.wikipedia.org/wiki/Precompiled_header를 참조하십시오 – rlbond