不能包含 DirectShow 示例并编译它 (PushSourceDesktop)
Can't include DirectShow sample and compile it (PushSourceDesktop)
所以我正在尝试用我的其他项目编译 PushSourceDesktop 示例,以便我可以使用"new"关键字直接制作对象而无需加载外部 dll。我已经将所有文件包含在我的项目中,并将我的预编译标头添加到.cpp文件中。我归结为这些错误,即使在谷歌和其他各种搜索的帮助下,我也无法真正弄清楚。希望这里有人能有所启发,提前感谢!
Error 4 error C2065: 'm_pString' : undeclared identifier c:program filesmicrosoft sdkswindowsv7.1samplesmultimediadirectshowbaseclasseswxdebug.h 292 1 record3
Error 5 error C2065: 'm_pString' : undeclared identifier c:program filesmicrosoft sdkswindowsv7.1samplesmultimediadirectshowbaseclasseswxdebug.h 316 1 record3
Error 1 error C2146: syntax error : missing ';' before identifier 'm_pString' c:program filesmicrosoft sdkswindowsv7.1samplesmultimediadirectshowbaseclasseswxdebug.h 295 1 record3
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:program filesmicrosoft sdkswindowsv7.1samplesmultimediadirectshowbaseclasseswxdebug.h 295 1 record3
Error 3 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:program filesmicrosoft sdkswindowsv7.1samplesmultimediadirectshowbaseclasseswxdebug.h 295 1 record3
8 IntelliSense: identifier "PTCHAR" is undefined c:program filesmicrosoft sdkswindowsv7.1samplesmultimediadirectshowbaseclasseswxdebug.h 295 5
该问题与 SDK 标头的包含顺序有关。您可能需要在代码顶部的某个位置添加#include <tchar.h>
PTCHAR
因为编译器无法找到。
由于 DirectShow 基类是非常具体的类库,因此我建议您不要将其与现有的其他C++代码(如 ATL、WTL 或 MFC)混合使用。这是可能的,但这可能会导致与您问题类似的问题。
相反,您可以将过滤器保存在单独的 DLL 中,您可以通过 CoCreateInstance
或通过 DllGetClassObject
/CreateInstance
私下实例化它,并通过私有接口与其通信。
相关文章:
- 没有找到相关文章