Friday, August 31, 2007

Compilation of VC++ 6.0 with Directshow

I got this following error codes......already i put strmiids.lib and build the baseclasses after that add the strmbasd.lib in link tab (settings)...
c:\dxsdk\samples\c++\directshow\baseclasses\wxutil.h(530) : error C2061: syntax error : identifier 'DWORD_PTR'
c:\dxsdk\samples\c++\directshow\baseclasses\ctlutil.h(437) : error C2504: 'IBasicVideo2' : base class undefined
c:\dxsdk\samples\c++\directshow\baseclasses\ctlutil.h(904) : error C2146: syntax error : missing ';' before identifier 'm_dwAdvise'
c:\dxsdk\samples\c++\directshow\baseclasses\ctlutil.h(904) : error C2501: 'DWORD_PTR' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\ctlutil.h(904) : error C2501: 'm_dwAdvise' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\amfilter.h(286) : error C2061: syntax error : identifier 'LONG_PTR'
c:\dxsdk\samples\c++\directshow\baseclasses\amfilter.h(951) : error C2504: 'IPinFlowControl' : base class undefined
c:\dxsdk\samples\c++\directshow\baseclasses\amfilter.h(982) : error C2061: syntax error : identifier 'IGraphConfig'
c:\dxsdk\samples\c++\directshow\baseclasses\amfilter.h(1067) : error C2143: syntax error : missing ';' before '*'
c:\dxsdk\samples\c++\directshow\baseclasses\amfilter.h(1067) : error C2501: 'IGraphConfig' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\amfilter.h(1067) : error C2501: 'm_pGraphConfig' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\amfilter.h(1340) : error C2504: 'IMemAllocatorCallbackTemp' : base class undefined
c:\dxsdk\samples\c++\directshow\baseclasses\amfilter.h(1444) : error C2143: syntax error : missing ';' before '*'
c:\dxsdk\samples\c++\directshow\baseclasses\amfilter.h(1444) : error C2501: 'IMemAllocatorNotifyCallbackTemp' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\amfilter.h(1444) : error C2501: 'm_pNotify' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\amfilter.h(1506) : error C2061: syntax error : identifier 'IMemAllocatorNotifyCallbackTemp'
c:\dxsdk\samples\c++\directshow\baseclasses\renbase.h(68) : error C2061: syntax error : identifier 'DWORD_PTR'
c:\dxsdk\samples\c++\directshow\baseclasses\renbase.h(78) : error C2146: syntax error : missing ';' before identifier 'm_dwAdvise'
c:\dxsdk\samples\c++\directshow\baseclasses\renbase.h(78) : error C2501: 'DWORD_PTR' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\renbase.h(78) : error C2501: 'm_dwAdvise' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\winctrl.h(103) : error C2061: syntax error : identifier 'LONG_PTR'
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(24) : error C2146: syntax error : missing ';' before identifier 'AddAdvisePacket'
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(24) : error C2501: 'DWORD_PTR' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(26) : error C2061: syntax error : identifier 'DWORD_PTR'
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(47) : error C2146: syntax error : missing ';' before identifier 'm_dwAdviseCookie'
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(47) : error C2501: 'DWORD_PTR' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(47) : error C2501: 'm_dwAdviseCookie' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(85) : error C2146: syntax error : missing ';' before identifier 'Cookie'
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(85) : error C2501: 'DWORD_PTR' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(86) : warning C4183: 'Cookie': member function definition looks like a ctor, but name does not match enclosing class
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(96) : error C2146: syntax error : missing ';' before identifier 'm_dwNextCookie'
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(96) : error C2501: 'm_dwNextCookie' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(102) : error C2146: syntax error : missing ';' before identifier 'AddAdvisePacket'
c:\dxsdk\samples\c++\directshow\baseclasses\dsschedule.h(102) : error C2501: 'DWORD_PTR' : missing storage-class or type specifiers
c:\dxsdk\samples\c++\directshow\baseclasses\refclock.h(103) : error C2061: syntax error : identifier 'DWORD_PTR'
c:\dxsdk\samples\c++\directshow\baseclasses\refclock.h(111) : error C2061: syntax error : identifier 'DWORD_PTR'
c:\dxsdk\samples\c++\directshow\baseclasses\refclock.h(121) : error C2061: syntax error : identifier 'DWORD_PTR'
c:\dxsdk\samples\c++\directshow\baseclasses\sysclock.h(20) : error C2504: 'IAMClockAdjust' : base class undefined
fSnake.cpp


I got the Error like urs :

I did the following things :
1. open the Directshow baseclasses .dsw (which gives output as strmbasd.lib)file in an VC++6.0 and compiled it.
( Make sure whether the VC++ 6.0's compiled strmbasd.lib included in a directshow application)
2. Next I included this strmbasd.lib in Linker's Input option.
3. in Tools ->options->Include Files option,
Included the C:\DXSDK\Include directory in Tools ->options
after the inclusion of this directory also I got an error.
Solution :
I rearranged the directories order in an ascending order
Previously the Directory order is as follows :
C:\Program Files\ Visual studio \ lib
C:\DXSDK\Include
4.Add the C:\DXSDK\Lib directory in Tools->options ->Library Files
5.Now compiling the filter works well.

this gives the problem so I rearranged it in an ascending order as follows :
C:\DXSDK\Include
C:\Program Files\ Visual studio \ lib
4. Added the following directory in a Tools->options->Include Files option ( related to Directx);
C:\DXSDK\Include\DShowIDL

No comments: