compiling MPStreamAnalyzer with VS2005 (1 Viewer)

FlexyZ

Portal Member
September 8, 2005
22
0
Well I don't understand how you can compile the SDK only by changing the path's and order.

I tried 2-3 versions of the DirectX SDK and Platform SDK, and it fails in "ctlutils" with line

COARefTime(LONG);
operator=(LONG);

and compiles when changed to :

COARefTime& operator=(LONG);

Please send your path, so I can se what you include first :)
 

draktheas

Retired Team Member
  • Premium Supporter
  • December 17, 2005
    77
    2
    Changing the paths alone will not allow the BaseClasses to compile under Visual Studio 2005. As I said in my message before, the Visual Studio 2005 C++ compiler implements ANSI C++ standards that it never adhered to in previous versions of Visual Studio. And the code in BaseClasses will not compile with the new compiler as is.

    Agree, have you tried to compile the BaseClasses from the Dec 2005 Platform SDK under Visual Studio 2005? I think if you attempt it, you will find that it will not compile without the changes and steps that I listed in my post.

    I would like to add that I am not trying to make things complicated. I arrived at the series of steps I posted through reading the Dec. 2005 Platform SDK documentation and tracking down the specifics of why BaseClasses will not compile under the new compiler. I didn't just pull these answers out of thin air.

    FlexyZ, to get the MPTS and MPTA projects to compile and link, you will need to add the Platform SDK include and lib paths to your default paths in Visual Studio. You will find that option under Tools->Options->Project And Solutions->VC++ Directories. You will want to make sure that your Platform SDK paths are the first ones in the list.

    Mine are:
    C:\Program Files\Platform SDK\Include
    C:\Program Files\Platform SDK\Samples\Multimedia\DirectShow\BaseClasses
    under 'Include files'

    and:
    C:\Program Files\Platform SDK\Lib
    under 'Library files'

    Drak
     

    Agree

    Retired Team Member
  • Premium Supporter
  • September 7, 2005
    27
    0
    draktheas said:
    Agree, have you tried to compile the BaseClasses from the Dec 2005 Platform SDK under Visual Studio 2005? I think if you attempt it, you will find that it will not compile without the changes and steps that I listed in my post.

    Sure i have, and the steps you listed are not required, if vs2005 was setup and running at least one time before u try to compile the base classes.

    If u must do all the things u told here, u should check your setup

    greets
     

    draktheas

    Retired Team Member
  • Premium Supporter
  • December 17, 2005
    77
    2
    All I can say is that you have something else setup on your system that makes it work. I have talked to six other programmers that can only get BaseClasses to compile using these instructions. All of them 1) Have never built BaseClasses before, 2) Are using VS2005 Pro fresh install, 3) Dec. Platform SDK, and 4) Setup a brand new project file for BaseClasses after installing VC2005.

    I am sure yours is working fine, but your system seems to be the anomoly. Could it be because you had already built BaseClasses before? What could be different on your system? Did you convert your old VC2003 Solution file to VC2005? Obviously there is something you have set that the rest of us are missing.

    Drak
     

    FlexyZ

    Portal Member
    September 8, 2005
    22
    0
    Hi Drak,

    Thanks for your guide, I tried but get this error now :

    ---------------------------

    cl -c -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -GS -D_X86_=1 -DWIN32 -
    D_WIN32 -W3 -D_WINNT -D_WIN32_WINNT=0x0501 -D_WIN32_IE=0x0600 -DWINVER=0x0501 -Z
    i -Od -DDEBUG -D_MT -MTd /Zc:forScope- /EHsc /Yu"streams.h" /FpXP32_DEBUG\strea
    ms.pch /Fo"XP32_DEBUG\\" /Fd"XP32_DEBUG\\" /D_MBCS /I "." /I"C:\Program Files\Mi
    crosoft DirectX SDK (December 2005)\\Include" /D_LIB /D_WIN32_DCOM wxdebug.cpp
    wxdebug.cpp
    wxdebug.cpp(564) : error C4430: missing type specifier - int assumed. Note: C++
    does not support default-int
    NMAKE : fatal error U1077: 'cl' : return code '0x2'
    Stop.

    C:\Program Files\Microsoft Platform SDK\Samples\Multimedia\DirectShow\BaseClasse
    s>

    ---------------------------
     

    FlexyZ

    Portal Member
    September 8, 2005
    22
    0
    Hi Drak,


    Think I have success now :)

    Got no Errors - only 249 Warnings (do you get around the same?)

    (Also got some help here : http://blogs.msdn.com/mikewasson/default.aspx)

    -------------------------------

    link -lib /OUT:XP32_DEBUG\strmbasd.lib /MACHINE:i386 /NODEFAULTLIB XP32_
    DEBUG\amextra.obj XP32_DEBUG\amfilter.obj XP32_DEBUG\amvideo.obj
    XP32_DEBUG\combase.obj XP32_DEBUG\cprop.obj XP32_DEBUG\ctlu
    til.obj XP32_DEBUG\ddmm.obj XP32_DEBUG\dllentry.obj XP32_
    DEBUG\dllsetup.obj XP32_DEBUG\mtype.obj XP32_DEBUG\outputq.obj
    XP32_DEBUG\pstream.obj XP32_DEBUG\pullpin.obj XP32_DEBUG\refc
    lock.obj XP32_DEBUG\renbase.obj XP32_DEBUG\schedule.obj XP32_
    DEBUG\seekpt.obj XP32_DEBUG\source.obj XP32_DEBUG\strmctl.obj
    XP32_DEBUG\sysclock.obj XP32_DEBUG\transfrm.obj XP32_DEBUG\tran
    sip.obj XP32_DEBUG\videoctl.obj XP32_DEBUG\vtrans.obj XP32_
    DEBUG\winctrl.obj XP32_DEBUG\winutil.obj XP32_DEBUG\wxdebug.obj
    XP32_DEBUG\wxlist.obj XP32_DEBUG\wxutil.obj strmiids.lib
    Microsoft (R) Library Manager Version 8.00.50727.42
    Copyright (C) Microsoft Corporation. All rights reserved.

    ----------------------------------
     

    Agree

    Retired Team Member
  • Premium Supporter
  • September 7, 2005
    27
    0
    draktheas said:
    All I can say is that you have something else setup on your system that makes it work. I have talked to six other programmers that can only get BaseClasses to compile using these instructions. All of them 1) Have never built BaseClasses before, 2) Are using VS2005 Pro fresh install, 3) Dec. Platform SDK, and 4) Setup a brand new project file for BaseClasses after installing VC2005.

    I am sure yours is working fine, but your system seems to be the anomoly. Could it be because you had already built BaseClasses before? What could be different on your system? Did you convert your old VC2003 Solution file to VC2005? Obviously there is something you have set that the rest of us are missing.

    Drak

    Indeed, i always build the baseclasses on every new sdk. And sure, i had convert all my project files.

    greets
     

    FlexyZ

    Portal Member
    September 8, 2005
    22
    0
    Agree do you get any warnings? and you did'nt change a single file?
     

    draktheas

    Retired Team Member
  • Premium Supporter
  • December 17, 2005
    77
    2
    Agree, I suspect since you converted your project files from VS2003, the conversion process put in the appropriate command line options to ignore A) The default int type deprication and B) The inner for loop variable compliance. If you start off with a new project file, you have to disable these manually or fix the source code errors.

    Drak
     

    Users who are viewing this thread

    Top Bottom