Web Page for Beginner Resources

I was on amazon.com looking for something else when I stumbled on this book:

Microsoft Visual C++ Express Edition Programming for the Absolute Beginner.  Although the book has mixed reviews, I've ordered a copy.  The only negative review of Aaron Miller's book that may be relevant, from my point of view, is the observation that the book is all about the VC++/CLR (.NET 2.0) aspects of VC++ and maybe too little on console applications and native (i86) Windows Applications.  Still, anything that provides some background on projects, the IDE, using the MSDN resources to advantage, and debugging should be an useful starter. 

There's also a new Ivor Horton book coming out on Beginning Visual C++ 2005 that might be more well-rounded.   The book is not available yet (it's scheduled for the end of February), so I didn't order it.  Horton wrote "Introduction to Microsoft Visual C++ 6.0 Standard Edition" that was bundled with the package of the same name.

It also occured to me that people who want to work exclusively with Windows Applications and the Platform SDK would do well to work with books and examples from the VS 6.0 era that don't rely on MFC and the ATL.

Finally, for developing "pure" C/C++ console applications, I have listed a few resources on a web site that I operate.  My next project after backing up my systems today is to revise that material, separating C, C++, and VC++ out more carefully so that beginners can place themselves in the progression that matters to them.  (For calibration, I am one of those that thinks it is valuable to learn C before C++.  If you want to go into .NET I think it is better to start in C# right away, though.)


Update: I alson notice that Bruce Eckel's Thinking in C++ Second Edition Volume I: Introduction to Standard C++ seems to be popular on amazon.com.  Although attention is on Standard C++ without concern for native Windows Applications or .NET (or Visual Studio), it provides useful material and the printed version includes a CD-ROM on Thinking in C.  There's more, including free PDFs of the book (but not the CD-ROM) at Eckel's web site.




Answer this question

Web Page for Beginner Resources

  • valen_N

    I finally consolidated this information on an nfoWare web page that will be used as a further source of material that is specific to Visual C++ 2005 Express Edition.  This is where I'll put any further resource information.

    Today, I'm working on tips for working with the compiler via command lines and developing/using console applications.  It is easy to overlook that there are many new enthusiasts and beginners who have never seen or operated in console sessions.  I think some worked examples would be very handy.  This should make it easier to work with standard books on console applications and also learn how to work with the Platform SDK for making native Win32 applications.

    So that's what I'm up to along with consolidating reference materials for pure C/C++ development as well.  I'm leaving the managed-code case to use of C#, which strikes me as a better place for beginners who want to make GUI applications quickly (once they figure out how to distribute their code).



  • jujulot2002

     orcmid wrote:
    There's also a new Ivor Horton book coming out on Beginning Visual C++ 2005 that might be more well-rounded.   The book is not available yet (it's scheduled for the end of February), so I didn't order it.  Horton wrote "Introduction to Microsoft Visual C++ 6.0 Standard Edition" that was bundled with the package of the same name.

    After I received Miller's Microsoft Visual C++ 2005 Express Edition Programming, I noticed that the Ivar Horton Beginning Visual C++ 2005 was available and I took the plunge.

    The book (1100+ pages) arrived today and I was a little daunted with its heft.  Having said that, I think it is a superior beginner's book in many ways and it will be of greater value except for the following little problem:

    To use this book you need any of Visual Studio 2005 Standard Edition, Visual Studio 2005 Professional Edition, or Visual Studio 2005 Team System.  Note that Visual C++ Express 2005 is not sufficient because the MFC is not included. [my emphasis -- orcmid:]

    And with only a cursory analysis, here is why I recommend this book anyhow:

    1. Miller's Express Edition Programming book doesn't cover treatment of unmanaged Windows applications at all, so you still get more with Horton's book.
          
    2. Horton is extremely careful to explain, from the very beginning, what the different development models are and he provides instruction in all of them.  He builds up from ISO/ANSI C++, console applications, and then native and managed (C++/CLI) applications.  He even makes it clear that you can do managed and native console applications quite nicely.
          
    3. Horton has the luxury of volume that allows the features of the IDE to be explained and illustrated, along with fairly careful attention to projects and what is involved with them.  He also deals with debugging and how to understand error messages.  He also demonstrates the running of console applications with Ctrl-F5 all of the time, so there are no disappearing output windows.  There's other evidence of a careful, deliberate approach.

    The first ten chapters (that's 600 pages) take you through ISO/ANSI C++ via console applications, with Microsoft Foundation Classes (MFC) used only in a couple of illustrative examples.  At the end of each chapter Horton adds information on features of C++/CLI, the extensions for pure CLR/.NET applications..  This parallel progression seems quite valuable, helping you understand what works in all of modern C++ and what is specific to the C+/CLI case. 

    Chapter 11 begins the treatment of Windows programming. It provides the execution model and illustrates it with a Windows API application, an MFC-built application, and a Windows Forms (C++/CLI) application.  It is pretty clear what the differences are and how C++ is targetable to different platforms and environments.  (You can tell I'm liking this, right )

    Chapters 12-20 are all about using the MFC to build native Windows applications.  MFC concepts and class usage is everywhere and these won't be useful to a non-MFC developer.  Chapter 18 does provide useful coverage of how DLLs work and how to build your own, but in VC++ 2005 Express Edition you won't be able to rely on the MFC wizards for making DLLs.  You can still make DLLs, just not that way.

    Chapters 21-22 wrap it all up by going into the use of Windows Forms for building windows applications for the CLR.

    Final Caveats

    1. If you want to develop native windows applications and you're determined to do it using the Express Edition plus the Platform SDK, the coverage in Chapter 12-20 will not help you.  You'll need a different resource, perhaps an edition of Petzold's Programming Windows such as the 1999 5th edition
          
    2. There will be differences between the illustrative uses of Visual Studio in the book and the specific displays and options of VC++ Express Edition.  I don't think that will be a problem for either console applications or basic Windows Forms applications.

    Horton appears to be determined to live up to the promise he makes on the front cover:

    "By using my book with Visual C++ 205, you'll come to understand the fundamentals of the C++ language and learn to program for Microsoft Windows.

    "First, I'll teach you C++ from first principles: you'll learn ISO/ANSI C++ as well as C++/CLI.  Then, using your newfound C++ knowledge, I'll show you how to build WIndows applications using Microsoft Foundation Classes in native C++ programs and by applying the power of Windows Forms and C++/CLI in the .NET environment. ...

    "It's a challenge, but you'll have great fun beating it.  This is your first step into the world of real programming." [all emphasis in the original -- orcmid:]

    If you are confined to the Express Edition, well, "two out of three ain't bad."

     



  • ha1o

    orcmid wrote:

    I was on amazon.com looking for something else when I stumbled on this book:

    Microsoft Visual C++ Express Edition Programming for the Absolute Beginner. Although the book has mixed reviews, I've ordered a copy. The only negative review of Aaron Miller's book that may be relevant, from my point of view, is the observation that the book is all about the VC++/CLR (.NET 2.0) aspects of VC++ and maybe too little on console applications and native (i86) Windows Applications. Still, anything that provides some background on projects, the IDE, using the MSDN resources to advantage, and debugging should be an useful starter.

    My copy of the book arrived. I have looked it over and I have four first impressions to share:

    1. The book focuses entirely on the C++/CLR environment and creating .NET Solutions. Each of the 11 chapters introduces a programming project involving a workable game. Each chapter provides practice with a progression of features and capabilities of VC++ 2005 Express Edition. All of the programming is with Visual C++ CLR projects. The projects can be downloaded from the book's web site.
    2. This book will not be helpful for those wanting to understand how to develop for the native platform and how to use .NET facilities from native applications and vice versa. When the features and capabilities of C++ are extolled in the early parts of the book, the various target environments (standard C/C++ console applications, native Windows applications, and mixed/pure CLR) are muddled in a way that confuses the different capabilities and platform requirements for each target. The book was completed before the Express Editions were offered for free, and there are some other indications that some of the nomenclature and concepts haven't been fully updated from those of VS.NET and VC++ 2003.
    3. This book seems to work well if you take it as a beginner's introduction to writing only .NET 2.0 applications using Visual C++ 2005 Express Edition. The fleeting discussions of other uses of C/C++ language and of other target environments are best ignored. This is admittedly a problem for the absolute beginner, who is not going to know when something being mentioned is incidental or even inapplicable to what this book provides. If this book is used for starters, other sources of information on programming in C/C++ without .NET should be avoided until there is enough experience to confidently branch out from the scope of this book.
    4. There are ways this book won't work for absolute beginners. It will work fine for those with a little development experience who are willing to forget what they already know about particular software environments. It is also necessary to understand the Windows environment a bit better than a casual user of the Windows desktop and standard applications. If you don't have that level of comfort around Microsoft Windows, I recommend finding a buddy to work through the installation and initial setup with.

    Use this book to learn how smoothly one can develop for pure .NET using Express Edition and you'll be fine. I'm inclined to recommend this book as a starting point for learning the Express Edition interface. Think of it as the water-wings swimming course that you might want to complete before going on to advanced life-saving.

    You'll need different resources to learn how to use the C++ Standard Library and the Windows Platform SDK. What is learned here about the IDE and making VC++ projects will be an useful start. I have my eye on some other books for that.



  • Web Page for Beginner Resources