1

因此,我尝试将 PushSourceDesktop 示例与我的其他项目一起编译,这样我就可以使用“new”关键字直接创建对象而无需加载外部 dll。我已将所有文件包含在我的项目中,并将我的预编译头文件添加到 .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
4

1 回答 1

1

该问题与 SDK 标头的包含顺序有关。您可能需要#include <tchar.h>在代码顶部添加某个位置,因为PTCHAR编译器无法找到。

因为 DirectShow Base Classes 是非常具体的类基础,所以我建议您不要将它与您拥有的其他 C++ 代码(例如 ATL、WTL 或 MFC)混合使用。这是可能的,但这可能会继续导致与您的问题类似的问题。

相反,您可以将过滤器保存在单独的 DLL 中,您可以通过/CoCreateInstance或私有地实例化它,并通过私有接口与其通信。DllGetClassObjectCreateInstance

于 2012-07-02T10:57:24.960 回答