VC++ 6 vs.C++.NET

Hi experts

can someone tell me or give me a link what are  diffrences between C++ 6 and C++.Net? i am not intersting in complicated diffrences, but rather general  and simple, kind of for beggining and intermideate levels....so I can explaint it to high School kids....

Thank you
deniliaAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

vascovCommented:
Visual C++ .NET is more ISO compliant (as much as 98% in the latest)
Visual C++ .NET can generate Managed Code (via /clr)
Visual C++ .NET can very easily integrate managed code with native code via a very kool technology, IJW (It Just Works :))
Visual C++ .NET is much more performant in terms of generated code (and has global optimizations)
Visual C++ .NET integrates MFC and ATL much better
Visual C++ .NET supports Web apps via ATL Server (very, very fast...)
Visual C++ .NET has more security features (/GS)
Visual C++ .NET has a full blown Windows Forms designer
Visual C++ .NET benefits from the Integrated Development Environment

Also, have a look at this page (http://msdn.microsoft.com/visualc/productinfo/topten/upgrade60.aspx)

HTH
0
JohnBPriceCommented:
On the con side, C++.Net requires the .Net framework for even trivial apps, whereas with VC++ 6 you could create simple apps that don't require MFC, ATL & other large libraries.

Most older systems (Win2K and before) will not already have the .Net framework, and it makes for a big download if you don't supply it on CD.
0
JohnBPriceCommented:
Ah, see, we listed the technical decision points as to which to choose.  If you are REALLY explaining it to High School kids, then I think the essential difference is:

VC++ 6 used standard & Microsoft specific C++ libraries.  For the most part, these libraries could only be used from C++.  Unless you take special precautions, the applications you build in C++ 6 can only be accessed from other C++ applications, e.g. you can't use C++ classes from VB unless you create them as COM compatible objects.

VC++.Net uses Microsoft's Common Language Runtime, CLR, which is basically the .Net framework.  The CLR is language independent, e.g. C#, C++, VB, whatever all use the same runtime libraries.  In the future (when the .Net framework is ubiquitous), this will mean smaller downloads and fewer compatibility problems.  Furthermore the .Net products genereate language independent code by default, meaning you can easily mix C#, C++, VB, whatever components in your project without the hassle inherit in the v. 6 products.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

vascovCommented:
Just want to make sure that the .CLR story around VC++ is clear:

VC++.NET CAN use .NET, but it's not the only thing it generates. (It only generates Managed code if you specify /clr, otherwise it generates the usual native code)

.NET Framework IS NOT a requirement for you VC++ apps. You only need .NET Framework if you target .NET using the /clr
You can still develop ALL the same types of projects you did in previous versions plus a bunch more introduced in VC++.NET which do not require .NET.

I do agree with JohnBPrice.
But since the question relates specifically to VC++6 vs VC++7, reading your previous message (in my mind, at least :)) leaves the message that VC++ 7 targets only .NET, when that's not the case and there are significant improvements for C++ users (ISO compliance = more portability, attributed programming, performance, security, debuggability, lib enhancements, ide, ...)
0
MAYURNATHCommented:

VC.Net is CLR + VC 7.0

VC.Net if u remove CLR it is just VC 7.0 an enhanced version support of VC 6.0 ex . gdiplus.dll etc.

.Net architecture lies in CLR for inter language , internet support.
VC 6.0 will be upto the compiler and linker- generating a executable module.

.Net architecture framework internally wraps everything (all supportables ) - like MFC wraps SDK.

I suppose this explains in simple.
0
skpanda1Commented:
hi,
        i m writing a code to enumerate network & local printer in win98 client m/c, the printer driver is installed in my own win 98 client m/c. the same driver is installed in server where the printer is connected.i want to get the printer from the server(network printer or remote printer)....
 here is some bit of code to enumerate...

 the network printer attribute should be 16 but i m getting 84 value ... WHY ???. sometime i m getting 1108 value for the same network printer....??

code ....---->>

    void PrinterRpt9x()
{
    BOOL ret1;
    printersetting=true;
    DWORD i;
    PRINTER_INFO_5* pPrint=NULL;
    DWORD pcbNeeded=0,pcReturned=0;

    HPRINTMUTEX= CreateMutex(NULL,FALSE,NULL);
    ret1=EnumPrinters(PRINTER_ENUM_LOCAL,NULL,5,NULL,pcbNeeded,&pcbNeeded,&pcReturned);
                                                                                           //Windows 95: Also enumerates network printers
                                                                                        //    because they are installed locally.

pPrint=(PRINTER_INFO_5 *)GlobalAlloc(GPTR,pcbNeeded);
    ret1=EnumPrinters(PRINTER_ENUM_LOCAL,NULL,5,(LPBYTE)pPrint,pcbNeeded,&pcbNeeded,&pcReturned);
   

    for(i=1;i<=pcReturned;i++)
    {
               
   
        if(pPrint->Attributes == PRINTER_ATTRIBUTE_NETWORK)

        {
       
            _beginthread(printdata9x,0,pPrint->pPrinterName);
           
        }

        if(pPrint->Attributes == PRINTER_ATTRIBUTE_LOCAL)
        {
       
            _beginthread(printdata9x,0,pPrint->pPrinterName);
                    pPrint++;

        if(pPrint)
            GlobalFree(pPrint);
    }

    }


then i m enumerating the jobs in queue in a thread and creating log file for each print command...


please help in this regard

guide me how to avoid this error ???
in win32 api..

regards
skpanda
 



 
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Programming Languages-Other

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.