Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I adressed porting from VC6 to VC9 in <a href="https://stackoverflow.com/questions/298016/is-it-really-worth-porting-from-vc6-vc2005-2008">this post</a>. I ported a million-line monolithic app from VC6 to VC9 last year, and it proved to be extraordinarily difficult. VC6 was notorious for being not very Standards-compliant even when it came out, and as the Standard evolved in the following years, VC6's compliance just became worse. Microsoft took the opportunity to fix this problem in VC7 to a large degree, but in doing so broke a lot of code that compiled in VC6.</p> <p>In some cases the code broke because the code itself was poor, and VC7 was a much better compiler that did not allow many liberties that VC6 did. But in many cases "good code" (from VC6's point of view) became illegal code because of the increased conformance. A very simple example:</p> <pre><code>for( int i = 0, cont = 1; cont; ++i ) { // count something up } cout &lt;&lt; "The number is now " &lt;&lt; i &lt;&lt; endl; </code></pre> <p>This code is perfectly fine as far as VC6 is concerned, but according to the Standard <code>i</code> falls out of scope at the end of the <code>for</code> block. There are many, many other examples of things like this that changed from VC6 to VC7 (and from VC7 to VC8 etc). You should review these changes carefully before you proceed:</p> <ul> <li><a href="https://stackoverflow.com/questions/298016/is-it-really-worth-porting-from-vc6-vc2005-2008">Breaking Changes VC 2005 - 2008 (VC 2005 -> VC 2008) </a></li> <li><a href="http://msdn.microsoft.com/en-us/library/ms177253.aspx" rel="nofollow noreferrer">Breaking Changes in the Visual C++ 2005 Compiler (VC 2003 -> VC 2005) </a></li> <li><a href="http://msdn.microsoft.com/en-us/library/ms177251(vs.80).aspx" rel="nofollow noreferrer">Breaking Changes in Visual C++ .NET 2003 (VC6 -> VC 2003) </a></li> </ul> <p>We had many compelling reasons to move to VC9 beyond just better compliance. One was the ability to compile 64-bit apps, and so we eventually decided to port the entire app. But you may have alternatives.</p> <p>If the compiler is creating a roadblock for you in just one portion of the code, you might consider porting just that portion, and creating a layer compiled in VC9 that bridges the gap between VB 8.0 and your VC6 application. This could be little more than a marshalling proxy, that does nothing more than move data between your main application and the 3rd-party component.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload