2011-06-01 75 views
6

我有兩個包括文件頭無法打開源文件「stdafx.h中」

#include "stdafx.h" 
#include "psapi.h" 

但是它給出了一個無法打開源文件「stdafx.h中」編譯時錯誤。我正在使用Visual Studios 2010.「stdafx.h」甚至有必要嗎?我認爲是因爲如果我拿走它,程序無法編譯。

回答

8

Visual Studio將其用於「預編譯頭文件」功能。如果您對Visual Studio沒有經驗,我會建議將stdafx.h保留在項目中。

當然,如果你#包括它,你應該擁有它。

+5

如果包含它,則必須在每個編譯單元中將其包括在內。在遇到'#include「stdafx.h」'之前,預處理器會忽略每條引導線。你可以放任何東西,沒有語法錯誤。 – Benoit 2011-06-01 15:06:03

+1

@Benoit:當stdafx.h不是第一個包含的時候,我的Visual Studio(2010)報告了一些事情(至少是一個警告)。 – Vlad 2011-06-01 15:07:14

+1

注意:如果任何**一個**文件包含'stdafx.h',那麼他們都應該。我有問題,只有一個文件(來自第三方)使用它,所以我不得不將它包含在我的所有頭文件中。我不喜歡使用它。我的項目不夠大,無法通過預編譯節省時間;通過Visual Studion,麻煩不值得節省。 – 2011-06-01 17:00:11

2

stdafx.h用於預編譯頭文件。這是沒有必要的,但如果你以前從未做過,禁用編譯器功能可能有點棘手。如果你有它,那麼在編譯其他東西之前你必須編譯'stdafx.cpp'。