2012-10-05 213 views
0

請幫助建立我的項目,我放棄了第二個小時後。 這就是它的樣子: Solution Explorer錯誤LNK 2005 Visual Studio 2008

BrickClass.h 

- #include"header.h" 

header.h 

- #pragma once 
- #include windows.h 
- #include windowsX.h 
- #include tchar.h 
- #include commctrl.h 
- #include "matrixClass.h" 
- #include "resource.h" 

mainClass.h 

- #include "header.h" 
- #include "brickClass.h" 

matrixClass.h 

- #include cstdlib 
- #include cstdio 
- #include math.h 

brickClass.cpp 

- #include "brickClass.h" 

main.cpp 

- #include "mainClass.h" 

mianClass.cpp 

- #include "mainClass.h" 

the error

什麼,我需要做的,讓他開心,我嘗試了很多變種,但無法弄清楚如何..? 感謝您的幫助。 該項目是在這裏:http://www.filehosting.org/file/details/381812/Tetris.rar

+1

我猜你沒有使用標頭警衛? – chris

+1

真的嗎? ** **下載**代碼需要**電子郵件地址**。 – chris

+0

是的,但這不是我的文件主機) –

回答

2

如果你在第二個小時後放棄,這可能不是適合你的行業:-)有幾次你會花費數天的時間試圖解決一個問題,最後踢自己,因爲回想起來這很簡單。


無論如何,關於手頭的問題。這幾乎肯定是因爲您的BrickClass頭文件中有代碼

通過在main.cpp(通過mainClass.h)和BrickClass.cpp中包含該頭文件,每個目標文件都獲得代碼的獨立副本。

然後,當您嘗試將這些對象文件鏈接在一起時,鏈接器會發現有兩個副本。

頭文件通常應包含聲明,extern int i;或函數原型,如int xyzzy (void);

定義,int i;和功能,如int xyzzy (void) {return 42;},應僅被放置在「常規」源文件。

+0

這可能不適合你的行業: - )它的4我。我可以在「如何編碼」問題上花費幾天的時間,但這種問題是*(&%^ *%& –

+0

很高興看到你按照預期的方式採用了幽默,@Mickey,有時候我可能是一個不敏感的人clod :-) – paxdiablo

+0

定義如int i;和函數,如int xyzzy(void){return 42;},只能放在「常規」源文件中。\ n這是正確的答案)) –