home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
Development
General Development (no feature request here!)
compiling MPStreamAnalyzer with VS2005
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="draktheas" data-source="post: 33266" data-attributes="member: 17330"><p>I had the same problem. It takes some significant digging and understanding of the new VS2005 compiler. </p><p></p><p>There are a few compiler and linker problems if you attempt to build as you have with previous versions of the compiler. The first is that the compiler no longer puts a default value type of 'int' on any unspecified type declarations or function return types. So you will have to edit the BaseClasses source files to fix these problems. There are only two of them. One is:</p><p>operator=(LONG);</p><p>You will just need to change it to:</p><p> COARefTime& operator=(LONG);</p><p>The second is a variable being declared without a type, I don't remember the exact line and file, but you just need to make it a DWORD type.</p><p></p><p>The second problem is the new compiler adheres to the proper (see the ANSI C++ standard) behavior for variables declared in a for loop, which the old compiler didn't. Whomever wrote the BaseClasses code for Directshow did not follow the standard, therefor the code no longer compiles. To fix this one you will need to go into the makefile in the BaseClasses directory and add:</p><p>/Zc:forScope-</p><p>to both of the $(CC) compiler call lines. This will turn off ANSI C++ compliance for the for scope declaration issues.</p><p></p><p>Next you will want to make sure you are using the prescribed build method for the BaseClasses source. I just built a little batch file that does it all for me. Here is what it looks like (note: you will need to put this in the BaseClasses directory and replace my VS install path with yours):</p><p></p><p>call "C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"</p><p>call "..\..\..\..\setenv.cmd" /XP32 /DEBUG</p><p>nmake /A</p><p></p><p>call "..\..\..\..\setenv.cmd" /XP32 /RETAIL</p><p>nmake /A</p><p></p><p>xcopy /Y .\XP32_DEBUG\strmbasd.lib ..\..\..\..\Lib\strmbasd.lib</p><p>xcopy /Y .\XP32_RETAIL\strmbase.lib ..\..\..\..\Lib\strmbase.lib</p><p></p><p>Secondary note: you may need to change this batch file further if you are targetting a different platform than 32Bit XP. Take a look at the setenv.cmd file in the PlatformSDK root for more options.</p><p></p><p>Drak</p></blockquote><p></p>
[QUOTE="draktheas, post: 33266, member: 17330"] I had the same problem. It takes some significant digging and understanding of the new VS2005 compiler. There are a few compiler and linker problems if you attempt to build as you have with previous versions of the compiler. The first is that the compiler no longer puts a default value type of 'int' on any unspecified type declarations or function return types. So you will have to edit the BaseClasses source files to fix these problems. There are only two of them. One is: operator=(LONG); You will just need to change it to: COARefTime& operator=(LONG); The second is a variable being declared without a type, I don't remember the exact line and file, but you just need to make it a DWORD type. The second problem is the new compiler adheres to the proper (see the ANSI C++ standard) behavior for variables declared in a for loop, which the old compiler didn't. Whomever wrote the BaseClasses code for Directshow did not follow the standard, therefor the code no longer compiles. To fix this one you will need to go into the makefile in the BaseClasses directory and add: /Zc:forScope- to both of the $(CC) compiler call lines. This will turn off ANSI C++ compliance for the for scope declaration issues. Next you will want to make sure you are using the prescribed build method for the BaseClasses source. I just built a little batch file that does it all for me. Here is what it looks like (note: you will need to put this in the BaseClasses directory and replace my VS install path with yours): call "C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat" call "..\..\..\..\setenv.cmd" /XP32 /DEBUG nmake /A call "..\..\..\..\setenv.cmd" /XP32 /RETAIL nmake /A xcopy /Y .\XP32_DEBUG\strmbasd.lib ..\..\..\..\Lib\strmbasd.lib xcopy /Y .\XP32_RETAIL\strmbase.lib ..\..\..\..\Lib\strmbase.lib Secondary note: you may need to change this batch file further if you are targetting a different platform than 32Bit XP. Take a look at the setenv.cmd file in the PlatformSDK root for more options. Drak [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
Development
General Development (no feature request here!)
compiling MPStreamAnalyzer with VS2005
Contact us
RSS
Top
Bottom