Solved

VC++ 6 vs.C++.NET

Posted on 2003-12-02
6
6,376 Views
Last Modified: 2008-02-01
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
0
Comment
Question by:denilia
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 12

Expert Comment

by:vascov
ID: 9862185
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
 
LVL 16

Expert Comment

by:JohnBPrice
ID: 9866424
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
 
LVL 16

Accepted Solution

by:
JohnBPrice earned 50 total points
ID: 9866476
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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 12

Expert Comment

by:vascov
ID: 9866872
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
 

Expert Comment

by:MAYURNATH
ID: 9920286

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
 

Expert Comment

by:skpanda1
ID: 9927148
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

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you haven’t already, I encourage you to read the first article (http://www.experts-exchange.com/articles/18680/An-Introduction-to-R-Programming-and-R-Studio.html) in my series to gain a basic foundation of R and R Studio.  You will also find the …
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
This video teaches viewers about errors in exception handling.
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question