[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

VC++ 6 vs.C++.NET

Posted on 2003-12-02
6
Medium Priority
?
6,383 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 150 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
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!

 
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

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Windows Script Host (WSH) has been part of Windows since Windows NT4. Windows Script Host provides architecture for building dynamic scripts that consist of a core object model, scripting hosts, and scripting engines. The key components of Window…
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
Suggested Courses

649 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