2010-08-23 45 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