1

そのため、PushSourceDesktop サンプルを他のプロジェクトでコンパイルして、'new' キーワードを使用して、外部 dll をロードせずに直接オブジェクトを作成できるようにしようとしています。プロジェクトにすべてのファイルを含め、プリコンパイル済みヘッダーを .cpp ファイルに追加しました。これらのエラーは、Google やその他のさまざまな検索の助けを借りても実際には把握できません。ここの誰かが光を当てることができるかもしれないことを願って、事前に感謝します!

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 ベース クラスは非常に特殊なクラス ベースであるため、使用している他の C++ コード (ATL、WTL、MFC など) と混合しないことをお勧めします。これは可能ですが、質問と同様の問題が発生し続ける可能性があります。

代わりに、フィルターを別の DLL に保持し、 /CoCreateInstanceを介してまたはプライベートにインスタンス化し、プライベート インターフェイスを介して通信することができます。DllGetClassObjectCreateInstance

于 2012-07-02T10:57:24.960 に答える