有人在开发directshow 的时候遇到dmoimpl.h的问题么?求救
开始错误:和下面的一样
include\dmoimpl.h(622) : error C2065: “dw”: 未声明的标识符
d:\DXSDK\include\dmoimpl.h(588): 编译类模板成员函数“HRESULT IMediaObjectImpl <_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS> ::ProcessOutput(DWORD,DWORD,DMO_OUTPUT_DATA_BUFFER *,DWORD *)”时
with
[
_DERIVED_=CSample,
NUMBEROFINPUTS=1,
NUMBEROFOUTPUTS=2
]
d:\dxsdk\samples\c++\directshow\dmo\dmosample\Sample.h(21): 参见对正在编译的类模板实例化“IMediaObjectImpl <_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS> ”的引用
with
[
_DERIVED_=CSample,
NUMBEROFINPUTS=1,
NUMBEROFOUTPUTS=2
]
d:\DXSDK\include\dmoimpl.h(623) : error C2228: “.dwStatus”的左边必须有类/结构/联合
d:\DXSDK\include\dmoimpl.h(624) : error C2228: “.fIncomplete”的左边必须有类/结构/联合
d:\DXSDK\include\dmoimpl.h(626) : error C2228: “.fIncomplete”的左边必须有类/结构/联合
state.cpp
StdAfx.cpp
util.cpp
正在生成代码…
生成日志保存在“file://d:\DXSDK\Samples\C++\DirectShow\DMO\DMOSample\Debug_Unicode\BuildLog.htm”
dmosample - 8 个错误,个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过==========
按照网上的修改 增加了 DWORD_PTR dw;
但是之后又出现了错误:
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I\dmoimpl.h(152) : error C2385: ambiguous access of 'Lock'
could be the 'Lock' in base 'IMediaObject'
or could be the 'Lock' in base 'ATL::CComObjectRootEx <ATL::CComMultiThreadModel> '
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I\dmoimpl.h(150) : while compiling class template member function 'IMediaObjectImpl <_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS> ::LockIt::LockIt(_DERIVED_ *)'
with
[
_DERIVED_=CMpeg4EncoderDMO,
NUMBEROFINPUTS=1,
NUMBEROFOUTPUTS=1
]
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I\dmoimpl.h(227) : see reference to class template instantiation 'IMediaObjectImpl <_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS> ::LockIt' being compiled
with
[
_DERIVED_=CMpeg4EncoderDMO,
NUMBEROFINPUTS=1,
NUMBEROFOUTPUTS=1
]
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I\dmoimpl.h(226) : while compiling class template member function 'HRESULT IMediaObjectImpl <_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS> ::GetStreamCount(unsigned long *,unsigned long *)'
with
[
_DERIVED_=CMpeg4EncoderDMO,
NUMBEROFINPUTS=1,
NUMBEROFOUTPUTS=1
]
e:\mpeg4dmo\mpeg4_dmo\mpeg4_dmo\encoderDMO.h(27) : see reference to class template instantiation 'IMediaObjectImpl <_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS> ' being compiled
with
[
_DERIVED_=CMpeg4EncoderDMO,
NUMBEROFINPUTS=1,
NUMBEROFOUTPUTS=1
]
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I\dmoimpl.h(152) : error C2660: 'IMediaObject::Lock' : function does not take 0 arguments
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I\dmoimpl.h(152) : error C3861: 'Lock': identifier not found
感觉非常奇怪 不知道如何改才好呢
谢谢