因此,我正在尝试将 PushSourceDesktop 示例与我的其他项目一起编译,这样我就可以使用“new”关键字直接创建一个对象,而无需加载外部 dll。我已将所有文件包含在我的项目中,并将我的预编译 header 添加到 .cpp 文件中。即使在谷歌和其他各种搜索的帮助下,我也无法真正弄清楚这些错误。希望这里的人能够阐明一些问题,在此先感谢!
Error 4 error C2065: 'm_pString' : undeclared identifier c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h 292 1 record3
Error 5 error C2065: 'm_pString' : undeclared identifier c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h 316 1 record3
Error 1 error C2146: syntax error : missing ';' before identifier 'm_pString' c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h 295 1 record3
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h 295 1 record3
Error 3 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h 295 1 record3
8 IntelliSense: identifier "PTCHAR" is undefined c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h 295 5
最佳答案
问题与包含 SDK header 的顺序有关。您可能需要添加 #include <tchar.h>
自 PTCHAR
以来代码之上的某处是编译器无法找到。
因为 DirectShow 基类是非常具体的类基,我建议您不要将它与您拥有的其他 C++ 代码(例如 ATL、WTL 或 MFC)混合使用。这是可能的,但这可能会继续导致与您问题中的问题类似的问题。
相反,您可以将过滤器保存在单独的 DLL 中,您可以通过 CoCreateInstance
实例化它或私下通过 DllGetClassObject
/ CreateInstance
,并与之沟通over private interface .
关于c++ - 无法包含 DirectShow 示例并对其进行编译 (PushSourceDesktop),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11284296/