2010-06-28 63 views
0

我正在嘗試集成兩個項目,並且爲此將頭文件從一個項目轉移到另一個項目中。我正在使用visual studio 2008 express。頭文件在一個項目中拋出錯誤,但在另一個項目中拋出錯誤

int E4407B_PPM(int &); 

被扔在新項目中的錯誤,但原來的項目編譯就好了。

錯誤我收到:

error C2143: syntax error : missing ')' before '&' 

任何想法?

編輯:我最終刪除了引用參數的行,並確保所有函數都在實際源文件中使用之前進行了聲明。我想這是一個C++/C的東西。

+1

在這種情況下,上下文就是一切。此行之前有幾行?如果它位於標題頂部附近,請檢查以前包含的標題以確保其正確終止(沒有未封閉的分隔符等)。另外,您可能會看看宏定義。變量名稱是全部大寫的,可能已被用作宏名稱。 – 2010-06-28 14:39:49

+0

你正在編譯其他項目爲C還是C++? – Tomek 2010-06-28 14:40:10

+0

我猜這個錯誤實際上並不在那一行,它只是從那裏報告。或許是文件中的錯誤,或者是在包含此文件之前直接包含的文件錯誤?預處理器可能會做各種奇怪的事情;沒有更多的上下文很難說出發生了什麼。 如果您將包含此頭文件的include進一步移到includes列表中,是否會更改錯誤消息? – 2010-06-28 14:41:02

回答

2

您可能正在構建第二個項目(或至少源文件)爲直C.確保該文件具有.cpp擴展名或者您正在強制執行C++編譯(您可以使用編譯選項/TP)那)。

編輯您可以爲單個文件指定它:右鍵單擊解決方案資源管理器中的文件並選擇屬性。點擊C/C++下的高級選項。選擇「編譯爲C++代碼(/ TP)」(我的Visual Studio版本中的第二個選項)。

+0

強迫整個項目進行編譯,因爲C++在代碼中導致許多問題,這不是我的問題,並且需要很長時間才能跟蹤和修復。我可以強制只有一個源文件編譯爲C++嗎? – 2010-06-28 15:04:02

+0

@Colin:是的,您可以爲單個文件指定該選項。我會將其添加到答案中。如果你這樣做,你可能會由於名稱修飾/裝飾而導致鏈接問題。如果是這樣,你可能需要添加一些'extern「C」'到適當的頭文件。 – 2010-06-28 15:09:31

+0

嗯。這並沒有改變,但它似乎忽略了這個選擇。如果我從項目中排除頭文件,似乎沒有什麼區別。 – 2010-06-28 15:20:27

相關問題