|
|
toolNote
t060302 |
{placeholder: This page will be specific to Visual C++ 2005 Express Edition, including VS 2005 and Windows API resources that are adaptable to that version. This site will also feature resources on C and C++ programming and those materials will be linked from here. As worked examples for adjusting between materials in specific books and Visual C++ 2005 Express Edition are developed, they will be linked here also.
Beside books, there will also be links to related nfoWare books and web resources. There are key MSDN and Microsoft resources that can be linked to as well.
There needs to be a Downloads section and maybe On-Line section here.}
1. Approach
2. Books
- see also:
- MSDN Forums > ... > Visual C++ Express Edition > Resources for Beginners
Orcmid's Lair 2006-03-15: Looking for "Ahah" -- When Did You Get Programming?
In choosing to develop programs with one of the Visual Studio 2005 languages, it is important to be clear what your experience level is and what your objective for programming is.
Sometimes you won't know where you lack needed experience. You will require a resilient attitude about simplifying yourself out of difficulties. Learn how how to extricate yourself when you have started something that you discover is too large or too complex for your current level of mastery. Also, learn how to use reference materials for resolving problems and clarifying your understanding of the fine points of language and software library features. The more experimentation and building of small programs to check your understanding of available material and examples, the better.
Because Visual C++ supports a particularly rich C/C++ language with a wide range of applications and platform choices, it is essential to have a focused objective for what you want to achieve as your initial level of competency. You must also be prepared to deal with the fact that not all capabilities of Visual C++ can be used together. There are also important differences in how the different configurations and templates work, and this will require some patience to sort out.
These nfoWare resources and toolcraft tips are organized for a bottom-up exploration of C/C++ and the Visual C++ 2005 Express Edition. Emphasis is on basic concepts and fundamentals. The development of Windows GUI programming is introduced only after developing a thorough foundation using console application development. Using the Win32 API (essentially a C Language interface) precedes use of more-complex object-oriented libraries and the Component Object Model (COM). There is little attention to managed code. It is my considered opinion that Visual C# is a far superior starting point for learning about managed code and rapid development of Windows GUI applications. Because the Windows .NET platform supports interoperability between C/C++ and C# applications, you can also learn to use both Visual C++ and Visual C#. It is desirable to have solid footing in one before starting with the other, especially if you are a beginner.
{AuthorNote: There will be a decision tree or other device that will assist newcomers in choosing a custom path for self-study and exploration using Visual C++. This will also help reconcile whether VC++ is the appropriate language (assuming there is choice in the matter).}
There are extensive materials on learning and using the C and C++ languages. These are discussed under other Toolcraft topics {cross-references to be supplied}. The books cited in this section address the unique features of the Visual C++ 2005 IDE and development of programs that run on Microsoft Windows. In some cases, customization will be required for adjustment to the capabilities of the Visual C++ 2005 Express Edition.
- Horton, Ivar. (2006)
- Ivar Horton's Beginning Visual C++ 2005. Wiley (Indianapolis, IN: 2006). ISBN 0-7645-7197-4 pbk/website.
At over 1100 pages, this is a superior beginner book. There is an important caveat (p. xxxvii): "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]". I recommend the book anyway. Less than half of the book content depends on Microsoft Foundation Classes (MFC). There will be some differences between the illustrations of Visual Studio in the book and the specific displays and options of Visual C++ Express Edition. I don't think that will be any problem for console applications and for basic Windows Forms applications. Here are the compelling features:
1. 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 application, then to native and managed (C++/CLI) Windows applications. He even makes it clear that you can build both managed and native (Win32) console applications.
2. Horton has the luxury of space to explain the features of the IDE and illustrate them as part of careful attention to what projects are and what they involve in the VS 2005 model. He deals with debugging and how to understand error messages too. There's other evidence of a careful, deliberate approach.
3. The first 10 chapters (that's 600 pages) take you slowly through ISO/ANSI C++ via console applications. MFC is used in only a couple of illustrative examples. At the end of each chapter Horton adds information on features of C++/CLI, the extensions that apply to managed-code applications. This parallel progression seems quite valuable, helping you to understand what works in all of modern C++ and what is specific to the C++/CLI extensions.
4. 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. This helps clarify what the differences are and how Visual C++ is targetable to different platforms and environments.
5. Chapters 12-20 are all about using the MFC to build native Windows applications. MFC concepts and class usage are everywhere. These won't be useful to the non-MFC developer, who will need to find other resources for this aspect of Windows development. (Chapter 18 does provide useful coverage of how DLLs work and how to build your own using MFC wizards. Express users can make DLLs too, just not this way.)
6. Chapters 21-22 wrap it up by going into the use of Windows Forms for building Windows applications for the Common Language Runtime (CLR).
- Miller, Aaron., Ford, Jerry Lee, Jr. (2006)
- Microsoft Visual C++ 2005 Express Edition Programming for the Absolute Beginner. Thomson Course Technology PTR (Boston: 2006). ISBN 1-59200-816-X pbk.
This book has received mixed reviews. Fundamentally it is about the C++/CLI (.NET 2.0 managed-code) aspect of VC++ 2005. It neglects console applications, native Windows Applications, and usage of ANSI/ISO standard C and C++ as supported by VC++ 2005. A greater concern is that the book does not live up to the "no experience required" subtitle on the cover.
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.
Use this book to learn how smoothly one can develop for pure .NET 2.0 using Express Edition and you'll be fine. It's introduction to the Integrated Development Environment (IDE) will also be applicable to other forms of C/C++ software development. Think of this as the water-wings swimming course that you might want to complete before going on to advanced life-saving.
As of March 2006, this is the only book written specifically for the Visual C++ 2005 Express Edition. The absence of simpler and alternative books is in noticeable contrast to the extensive beginner support for C# and VB.NET.
- Petzold, Charles. (1999)
- Programming Windows, Fifth Edition. Microsoft Press (Redmond, WA: 1999). ISBN 1-57231-995-X with CD-ROM.
This "10th anniversary edition" is evidently the final version of Programming Windows to use the native Windows API (and C Language) for all of its explanation and examples. Petzold's subsequent books feature managed code, C# Language, Windows Forms, and the new foundations that accompany introduction of Windows Vista.
If you have a requirement to operate with the Win32 API and the Microsoft Platform SDK, this book is an important resource. Petzold states three prerequisites for that approach (pp.3-4):
1. Familiarity with Windows (98 or later) from an user's perspective. Carrying out all development on a Windows system is a pre-requisite. Any machine that can run Visual C++ 2005 Express Edition satisfies this requirement.
2. Knowledge of C Language. "If you don't know C, Windows programming is probably not a good place to start. I recommend that you learn C in a character-mode environment such as that offered under the ... Command Prompt window."
3. 32-bit C Compiler and Development Environment. For the few places where construction details are illustrated, Petzold presumes Visual C++ 6.0 and also refers to Platform SDK versions that were current at the same time. Adaptation for Visual C++ 2005 Express Edition and current Platform SDK versions is generally straightforward.
{AuthorNote: For these and other resources, I will look at providing some bridging starter material that shows how to adapt what is in the book to working with Visual C++ 2005 Express Edition. In some cases, such as (Miller & Ford, 2006), I will gather any supplemental material that provides a smoother start-up, if needed. I have no desire to duplicate the extensive resources that are already available. What I want to do is provide an useful foundation and guide for making use of that great variety.
Also, for the Petzold prerequisites, we'll provide links to ways to satisfy those and to customize the Petzold samples and exercises for operation with VC++ 2005 Express Edition.}
{references}
{contributors}
{attribution}
|
|
created 2006-03-29-18:21 -0800 (pst) by
orcmid |