一個朋友來信說,他在工程中添加了一個數據導出到Excel表的類CSpreadSheet,結果出現了LNK2005的錯誤。在網上查了一下,發現還不只我這個朋友遇到這個問題,CSDN上也有類似問題:http://topic.csdn.net/t/20050311/09/3842070.html
這個CSpreadSheet.h文件在CodeProject和CodeGuru上都有,其實是這個文件有問題。這個頭文件既包括了CSpreadSheet類的定義,還包括這個類的實現,這樣所有包含這個頭文件的類都有一份這個類的實現,鏈接的時候自然就出錯了。只要工程中有兩個以上的地方包含這個頭文件就會出現這個錯誤。解決的辦法很簡單,建立一個CSpreadSheet.cpp文件,然后在這個文件的開頭加上:
#include?“stdafx.h”
#include?“CSpreadSheet.h”
然后把CSpreadSheet.h中的從“// Open spreadsheet for reading and writing”(含)到“#endif”(不含)之前的語句都剪切到CSpreadSheet.cpp中,也就是將類的聲明和實現分離,再將CSpreadSheet.cpp文件加到工程中,這樣就可以了。
posted on 2006-04-24 15:24
zealsoft 閱讀(1519)
評論(0) 編輯 收藏 引用 所屬分類:
錯誤處理