For Programmers: Free Programming Magazines  


Home > Archive > VC STL > March 2006 > Using VC7.1 compiler under VC6 IDE.... woes.... :S









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Using VC7.1 compiler under VC6 IDE.... woes.... :S
KevinGPO

2006-03-07, 7:58 am

Has anyone tried compiling a VC6 MFC application using the VC7.1 compiler?

I followed this simple article on making VC6 to use the VC7.1 compiler.
http://pixwiki.bafsoft.com/wiki/ind...r /> he_VC6_IDE

Then all the errors I've been getting have been from the actual C:\Program
Files\Microsoft Visual Studio\VC98\MFC\Include\ folder (loads of template
syntax errors).

Surely Microsoft must've made a portability/conversion for VC6 MFC to be
used under VC7.1?



adebaene@club-internet.fr

2006-03-07, 7:58 am

KevinGPO wrote:
> Has anyone tried compiling a VC6 MFC application using the VC7.1 compiler?
>
> I followed this simple article on making VC6 to use the VC7.1 compiler.
> http://pixwiki.bafsoft.com/wiki/ind...r /> he_VC6_IDE
>
> Then all the errors I've been getting have been from the actual C:\Program
> Files\Microsoft Visual Studio\VC98\MFC\Include\ folder (loads of template
> syntax errors).


For each error in the output, you should have an "instanciation stack
trace" that go down through the various template layes to your source
code. If you can't figure out what the errors means, post a small
compilable sample form your source code, and someone should be able to
help.

>
> Surely Microsoft must've made a portability/conversion for VC6 MFC to be
> used under VC7.1?

NO, this would have been a enormous work, given the standard-conformity
leap that has been done in VC 7.1, especially concerning templates.

Arnaud
MVP - VC

PS : Do NOT cross-post to so many newsgroups

KevinGPO

2006-03-09, 3:59 am


<adebaene@club-internet.fr> wrote in message
news:1141735870.122780.77910@v46g2000cwv.googlegroups.com...
> KevinGPO wrote:
>
> For each error in the output, you should have an "instanciation stack
> trace" that go down through the various template layes to your source
> code. If you can't figure out what the errors means, post a small
> compilable sample form your source code, and someone should be able to
> help.
>
> NO, this would have been a enormous work, given the standard-conformity
> leap that has been done in VC 7.1, especially concerning templates.
>


I had a brief look at the "Major changes between Visual C++ 6.0 and Visual
Studio.NET 2003" page. The MFC/ATL template changes were just:

CRowset<template> changed to <CRowset<template1, template2> etc.

So one could right a script to map these changes. Or Microsoft could have
done something like this to help old VC6 developers migrate or change over.

When I installed VS2003 there was absolutely nothing about migrating old VC6
MFC/ATL apps. However it does let you "open" a VC6 project/workspace and
it'll convert it to VS2003 projects. But I have never seen any help or
warnings about the MAJOR changes to MFC/ATL. Instead it was hidden away in
the MSDN on the internet.



> Arnaud
> MVP - VC
>
> PS : Do NOT cross-post to so many newsgroups
>



Stephen Howe

2006-03-09, 7:02 pm

> I had a brief look at the "Major changes between Visual C++ 6.0 and Visual
> Studio.NET 2003" page. The MFC/ATL template changes were just:
>
> CRowset<template> changed to <CRowset<template1, template2> etc.


I don't see that. See ATLDBCLI.H

> So one could right a script to map these changes. Or Microsoft could have
> done something like this to help old VC6 developers migrate or change

over.

I don't regard that they did anything that requires MS to spend time on
this.
I don't see any major changes to the MFC/ATL (and nor would I expect any as
MFC/ATL is mature technology). I would rather MS spend time on real problems
not pseudo-problems.
If programmers use obsolete practices that are scheduled to be phased-out in
successive versions of VS, it is their tough luck if they choose to ignore
warnings and live with old practices in their code base. A false economy.
When the next version of VS is intolerant - they have paid the price for
ignoring warnings with previous VS's. And I don't see MS should have to
write hand-holding tools.

An example was the fact that std::vector's iterators with VS6 would convert
to pointers to the object on straight assignment. That operation is not
guranteed by ISO C++ (and in fact there is an expression which is guaranteed
by ISO C++). But VC6 allowed you to get away with it. Come VS2001, this
changed.
All those programmers who wrote reams of code (and they had no business
writing such code) that tacitly took such advantage got slapped. Given

std::vector<object>::iterator it;
// it pointing to a valid object
object *p = &*it;

always works where as

object *p = it;

may or may not work depending on how vector iterators are implemented.

> When I installed VS2003 there was absolutely nothing about migrating old

VC6
> MFC/ATL apps. However it does let you "open" a VC6 project/workspace and
> it'll convert it to VS2003 projects.


Right. We did that. DSW's converted to Solutions. The only problem we had
was when shared DSP's were part of multiple DSW's. The 1st DSW converted
fine. The 2nd DSW did not. This was with VS2001. Some manual editing of
Solution files sorted this out - no big deal.

> But I have never seen any help or
> warnings about the MAJOR changes to MFC/ATL. Instead it was hidden away in
> the MSDN on the internet.


I detect no major changes.

Stephen Howe


Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com