<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Blog O'Brian</title>
	<atom:link href="http://brianstewart.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://brianstewart.wordpress.com</link>
	<description>pixels, puppets, and code</description>
	<lastBuildDate>Sat, 30 Aug 2008 13:46:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='brianstewart.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Blog O'Brian</title>
		<link>http://brianstewart.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://brianstewart.wordpress.com/osd.xml" title="Blog O&#039;Brian" />
	<atom:link rel='hub' href='http://brianstewart.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Upgrading to Visual Studio 2008</title>
		<link>http://brianstewart.wordpress.com/2008/08/29/upgrading-to-visual-studio-2008/</link>
		<comments>http://brianstewart.wordpress.com/2008/08/29/upgrading-to-visual-studio-2008/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 21:36:43 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[software;development;visual;studio]]></category>
		<category><![CDATA[SoftwareDevelopment]]></category>
		<category><![CDATA[VisualStudio]]></category>

		<guid isPermaLink="false">http://brianstewart.wordpress.com/?p=11</guid>
		<description><![CDATA[At work I have been migrating our source tree from Visual Studio 2005 to Visual Studio 2008. Our source tree supports several top-level products, and contains more than 100 C++ projects. Additionally, we (like most shops, I suspect) have a number of third-party libraries upon which we depend for various tasks like image processing and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianstewart.wordpress.com&amp;blog=4625437&amp;post=11&amp;subd=brianstewart&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At work I have been migrating our source tree from Visual Studio 2005 to Visual Studio 2008. Our source tree supports several top-level products, and contains more than 100 C++ projects. Additionally, we (like most shops, I suspect) have a number of third-party libraries upon which we depend for various tasks like image processing and 3D graphics.  The port has been surprisingly <span style="text-decoration:line-through;">difficult </span>tedious. Some may remember the bad-old-days of porting from the 7.1 compiler to the 8.0 compiler &#8211; it wasn&#8217;t anything like that. However there was very little guidance out of Microsoft as to what type of problems C++ developers could expect to encounter. I suspect this is just another instance of C++ being treated as the step-sister to C# and the other .NET languages. For example, none of the cool new designer stuff was added to Visual C++. Microsoft&#8217;s changes to Visual C++ pretty much amounted to buying a third-party library so MFC developers could have the Office Ribbon. Sigh&#8230;</p>
<p>I think what would have made me happy would have simply been a porting guide from Microsoft &#8211; but since I couldn&#8217;t find one, here&#8217;s my take on compatibility between the two versions, included here for the purpose of helping any other poor soul that traverses this path.</p>
<p>There are several aspects to &#8220;compatibility&#8221; between VS2005 (VS8) and VS2008 (VS9)</p>
<ul>
<li> Project and Solution file format</li>
<li> Native DLL &amp; Library binary compatibility</li>
<li> Compiler Issues</li>
<li> .NET version for managed code</li>
</ul>
<p><strong><span style="text-decoration:underline;">Project and Solution file format</span></strong></p>
<p>The project and solution files for VS9 are different than those for VS8. The differences are mostly trivial, but break compatibility nonetheless, see <a href="http://www.west-wind.com/weblog/posts/122975.aspx">Rick Strahl&#8217;s blog</a> for more info. Emmet Gray has a <a href="http://home.hot.rr.com/graye/Articles/ProjectConverter.htm">project converter</a> that will convert back and forth between these two versions. I downloaded it and am trying it out for situations when we have to give a customer projects for Visual Studio 2005.</p>
<p><strong><span style="text-decoration:underline;"> Native DLL &amp; Library binary compatibility</span></strong></p>
<p>Microsoft says that DLLs, and some static libs with pure C-style interfaces should work identically between VS8 and VS9. However, if a static library compiled for VS8 uses the STL, or some other library internally (not just in the public interface), or has a C++-style public interface, then it should not be used with VS9. <a href="http://forums.msdn.microsoft.com/en-US/vcgeneral/thread/8042a534-aa8b-4f99-81ee-e5ff39ae6e69/">This post</a> on MSDN has more information. We found that libraries like <a href="http://www.opengl.org/">OpenGL </a>and <a href="http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm">Intel&#8217;s Performance Primitives</a> seem to work fine (because they are C-style DLLs), but we had to rebuild libraries like <a href="http://www.boost.org/">Boost </a>and <a href="http://www.gdal.org/">GDAL</a>. I also had to turn off <strong>Enable Minimal Rebuild</strong> (/Gm) and <strong>Detect 64-bit portability issues </strong>settings &#8211; though that may have been because I was compiling with the multiprocessor flag (/MP) turned on.</p>
<p><strong><span style="text-decoration:underline;"> Compiler Issues</span></strong></p>
<p>As Microsoft moves toward a more standards-compliant compiler with each release, they deprecate certain flags and options, as well as APIs and code constructs. Consequently, code that compiled under a previous compiler sometimes needs minor tweaks to work with the newer compiler. The changes from VS8 to VS9 are fairly minor, especially compared to the jump between VS7.1 and VS8.  The only thing I ran into was that <strong>_MIN()</strong> and <strong>_MAX()</strong> are now deprecated. You are now supposed to use</p>
<pre>std::min&lt;T&gt;()
std::max&lt;T&gt;()</pre>
<p><span style="text-decoration:underline;"><strong>.NET version for managed code</strong></span></p>
<p>This is the compatibility issue everyone seems to talk about. VS9 does support multi-targeting, which allows previous versions of the .NET API to be targeted. I have not personally tried it out, but I did see the Targeted Framework setting (or something like that) in the project options for C++/CLI projects, as well as (obviously) C# projects.</p>
<p>Well, that&#8217;s about it. Hope your port goes smoothly!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/brianstewart.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/brianstewart.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianstewart.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianstewart.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianstewart.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianstewart.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianstewart.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianstewart.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianstewart.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianstewart.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianstewart.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianstewart.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianstewart.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianstewart.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianstewart.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianstewart.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianstewart.wordpress.com&amp;blog=4625437&amp;post=11&amp;subd=brianstewart&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianstewart.wordpress.com/2008/08/29/upgrading-to-visual-studio-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0fcc606c525ff7c0b9d9f51738abc6db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Brian</media:title>
		</media:content>
	</item>
		<item>
		<title>Finally!</title>
		<link>http://brianstewart.wordpress.com/2008/08/27/finally/</link>
		<comments>http://brianstewart.wordpress.com/2008/08/27/finally/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 00:29:39 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://brianstewart.wordpress.com/?p=5</guid>
		<description><![CDATA[Partly because of a growing concern that I might be the last person on the planet without one, and partly because I needed to have a OpenID, I finally got around to getting a blog. Hopefully, I&#8217;ll even update it occasionally&#8230; So anyway, if by some miracle someone out there actually reads this, you might [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianstewart.wordpress.com&amp;blog=4625437&amp;post=5&amp;subd=brianstewart&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Partly because of a growing concern that I might be the last person on the planet without one, and partly because I needed to have a OpenID,  I finally got around to getting a blog. Hopefully, I&#8217;ll even update it occasionally&#8230; So anyway, if by some miracle someone out there actually reads this, you might eventually see some posts about some of my interests: 3D graphics development in C++, puppet-building, movie-making, etc.  Later&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/brianstewart.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/brianstewart.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianstewart.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianstewart.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianstewart.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianstewart.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianstewart.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianstewart.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianstewart.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianstewart.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianstewart.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianstewart.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianstewart.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianstewart.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianstewart.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianstewart.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianstewart.wordpress.com&amp;blog=4625437&amp;post=5&amp;subd=brianstewart&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianstewart.wordpress.com/2008/08/27/finally/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0fcc606c525ff7c0b9d9f51738abc6db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Brian</media:title>
		</media:content>
	</item>
	</channel>
</rss>
