用C++寫程式,肯定要用先行編譯標頭檔,就是那個stdafx.h.
不過我一直以為只要在.cpp檔案中包含stdafx.h 就使用了先行編譯標頭檔,其實不對。
在VC++中,先行編譯標頭檔是指放到stdafx.h中的標頭檔才會有效果。
如下:
file: stdafx.h
// stdafx.h : include file for standard system include files,// or project specific include files that are used frequently, but// are changed infrequently//#pragma once#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. #define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows.#endif #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
// 各位注意,要想使用先行編譯效果的標頭檔要放這裡。#include <Windows.h>#include "xxx.h"
// TODO: reference additional headers your program requires here
在stdafx.cpp中保持不變即可,預設如下:
// stdafx.cpp : source file that includes just the standard includes// CPPTestHelper.pch will be the pre-compiled header// stdafx.obj will contain the pre-compiled type information#include "stdafx.h"// TODO: reference any additional headers you need in STDAFX.H// and not in this file