不能包含 DirectShow 示例并编译它 (PushSourceDesktop)

Can't include DirectShow sample and compile it (PushSourceDesktop)

本文关键字:PushSourceDesktop 编译 包含 DirectShow 不能      更新时间:2023-10-16

所以我正在尝试用我的其他项目编译 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私下实例化它,并通过私有接口与其通信。

相关文章:
  • 没有找到相关文章