該錯誤是因為當項目中混合了 .cpp 和 .c 文件時,編譯器會對它們采取不同的編譯方式(主要是因為對函數(shù)聲明的處理方式不同),
因而不能共用一個預(yù)編譯頭文件。在 VC++ 中,默認的預(yù)編譯頭文件是針對 C++ 的 (stdafx.h 和 stdafx.cpp),當然也可以創(chuàng)建針對 C 的預(yù)編譯頭。
方法:將少數(shù)的不同類文件設(shè)為不使用預(yù)編譯頭是比較平衡的做法,方法是:對于 VC++6.0,在 FileView 里對要取消預(yù)編譯頭的 .c (或 .cpp) 文件點右鍵,
選擇 settings,在彈出的對話框右邊選擇 category 為 precompiled headers,再設(shè)置選項為 not using ...;
(對于 VS2005,則在 solution explorer 中對相應(yīng)文件點右鍵選擇 properties,在 precompiled headers 項下設(shè)置 not using... 即可。如果需要設(shè)置多個文件,
則可以按住 Ctrl 鍵再同時選中這些文件并設(shè)置)
PS:解釋如下點擊項目 點擊屬性 然后選擇C/C++ 預(yù)編譯頭 創(chuàng)建使用頭文件 不使用預(yù)編譯頭文件
(解決方案資源管理器-右擊需要排除的c或cpp文件]-彈出屬性菜單-展開C/C++-預(yù)編譯頭-創(chuàng)建/使用預(yù)編譯頭-選擇不適用預(yù)編譯頭)