2010-08-23 27 views

回答

14
extern IMediaSample *pSave = NULL; 

這不只是一個聲明。這將定義pSaveNULL。由於.cpp都包含.h,因此將在2個翻譯單元中定義此變量,這會導致衝突。

你應該只把它改寫爲

extern IMediaSample *pSave; 
.h

,然後在完全.cpp S的一個補充IMediaSample *pSave = NULL;

0

嘗試使用ifndef語句。定義一個變量特有然後創建同時包括使用類似的頭文件:

#ifndef commonh 
include common.h 
#endif 
+0

我已經試過這個技巧,不工作.. – Alan 2010-08-23 15:07:57

+4

包括警衛保護您免於包括在相同的源文件*中包含頭*,而不是在不同的頭文件中。 – 2010-08-23 15:10:49

+0

除非你把頭文件中的include guard ... – TJMonk15 2010-08-23 15:57:57

相關問題