Jump to articles...
About the Authors
Kate Gregory is a founding partner of Gregory Consulting Limited (www.gregcons.com), and is the MSDN Regional Director for Toronto, Canada. She is a well-known speaker and lecturer at colleges and Microsoft events on subjects such as .NET, Visual Studio, XML, UML, C++, Java, and the Internet. Kate is the author of numerous books for Que, including Special Edition Using Visual C++ .NET.
Nick Wienholt is a Windows and .NET consultant based in Sydney, Australia. He has worked on a variety of IT projects over the last decade and continues to stay involved in the developer community. Nick is the co-founder and president of the Sydney Deep .NET User group, writes technical articles for Pinnacle Publishing and the Microsoft Developer Network, and is a participant in many .NET-related newsgroups. Nick's most recent book is Maximizing .NET Performance.
Stephen Fraser has 15 years of IT experience working for a number of consulting companies ranging from startups to large consulting firms such as EDS and Andersen Consulting (Accenture). His IT experience covers all aspects of application and Web development and management, ranging from initial concept all the way through to deployment. Stephen is also the author of several books, including Managed C++ and .NET Development, Real World ASP.NET: Building a Content Management System, and the forthcoming Pro C++/CLI and .NET Version 2.0 Development.
By Nick Wienholt (Author)
- Using VC++ .NET - Article Published
01/26/2010
C++ Programming is having a revitalization of Microsoft Foundation Classes (MFC) which continues to deliver simple integration with powerful Windows features. In this article, we'll look at Preview and Thumbnail Support, and how these features can be easily implemented in an MFC application.
By Nick Wienholt
- Using VC++ .NET - Article Published
10/19/2009
Leveraging Windows Error Reporting (WER) to use Microsoft's existing infrastructure for providing end users with patches and workarounds, a critical aspect of the application life-cycle management.
By Nick Wienholt
- Using VC++ .NET - Article Published
09/14/2009
Even the best-written C++ applications can crash or hang-and end-users' perceptions of the application hinge on how gracefully the application works with the operating system to handle such problems. By registering your applications with Windows Application Recovery and Restart, they can recover gracefully after errors occur.
By Nick Wienholt
- Using VC++ .NET - Article Published
08/17/2009
Correctly managing the release of heap-allocated memory and other resources has been one of the great challenges of C and C++ development for decades. The new shared_ptr class, shipping with Visual Studio 2008 SP1 and Visual Studio 2010, makes dealing with resource management dramatically simpler.
By Nick Wienholt
- Using VC++ .NET - Article Published
07/13/2009
By adopting a messaging based approach to task parallelism, the Asynchronous Agents Library provides a simple model for concurrent programming that avoids the complexity of memory locks.
By Nick Wienholt
- Using VC++ .NET - Article Published
06/02/2009
Visual C++ 2010 includes a number of new features for preventing data inconsistencies due to simultaneous updates of memory locations - a key challenge in parallel development.
By Nick Wienholt
- Using VC++ .NET - Article Published
05/11/2009
Visual C++ 10.0's new Parallel Pattern Library supplies methods to execute multiple processing tasks, across available processing resources, eliminating the headache of manually allocating task execution.
By Nick Wienholt
- Using VC++ .NET - Article Published
04/10/2009
Visual C++ 2010 with many of the new C++ 0x language features including Lambdas. Discover how lambda functions make C++ code easier to read and maintain, and explore the various techniques for writing them ships.
By Nick Wienholt
- Using VC++ .NET - Article Published
02/02/2009
MSBuild is the build platform that Microsoft is using across all developer and related tools moving forward. Visual C++ is the last major compiler offering from Microsoft to move onto the MSBuild platform, with the Visual C++ 2010 release using MSBuild as its native project format. Explore the MSBuild basics from a C++ perspective, and see how it can improve your build process.
By Nick Wienholt
- Using VC++ .NET - Article Published
12/17/2008
C++/CLI has a number of advanced features that make developing and maintaining applications easier. Discover how these allow types to be moved between assemblies without breaking existing application, allow fast and efficient interoperability between native functions, and make it possible to create functions that take a variable number of parameters while still maintaining type safety.
By Nick Wienholt
- Using VC++ .NET - Article Published
11/11/2008
The Visual C++ compiler has a number of switches that control the generation of native and managed instructions within an executable image. Choosing the correct setting is an important consideration for application performance, deployment, and execution, as well as having implications about which development toolkits can be used.
By Nick Wienholt
- Using VC++ .NET - Article Published
10/06/2008
Replacing the cumbersome and confusing Managed Extensions for C++ that shipped with Visual C++ 2002 and 2003, C++/CLI is a standardized set of C++ language extensions that allows developers to write managed code that executes on top of the .NET Framework.
By Nick Wienholt
- Using VC++ .NET - Article Published
09/08/2008
Despite the best documentation, stepping into the actual source code of third-party libraries can be the fastest way to diagnose a difficult bug or determine the state that a component needs to be in before a certain operation can be completed. With a little set-up magic, developers can step into libraries quickly and easily.
By Nick Wienholt
- Using VC++ .NET - Article Published
08/06/2008
Thread debugging can be one of the more difficult debugging exercises for a Visual C++ developer. The Visual Studio 2008 debugger contains a number of improvements that make thread debugging more productive, enabling code issues in multi-threaded applications to be identified and remedied faster.
By Nick Wienholt
- Using VC++ .NET - Article Published
07/08/2008
Effective use of the Visual C++ debugger is one of the easiest ways to increase developer productivity. Program database (PDB) files are one of the key elements in effectively debugging an application, and it is easy to set up Visual Studio to use debug symbols for binary files produced by other developers, including those at Microsoft.
By Nick Wienholt
- Using VC++ .NET - Article Published
06/10/2008
Code is run in a debugger for two main reasons: examining the branches of code that are being executed, and examining data values to determine why the code is behaving in a certain manner. Inspecting data values can be significantly improved by customizing the debug information. See how that can be done in the Visual C++ debugger.
By Nick Wienholt
- Using VC++ .NET - Article Published
05/12/2008
The Visual C++ 2008 Feature Pack incorporates C++ language changes that move C++ closer to the upcoming C++0x standard. The new language elements build on the powerful features of the C++ language, and include support for regular expressions, function objects, and a number of new STL containers as well as many other new features. Review some of the new language features, and see how they can be incorporated into C++ applications.
By Nick Wienholt
- Using VC++ .NET - Article Published
04/07/2008
Hot on the heels of the significant MFC updates that were delivered with the release of Visual Studio 2008, the Visual C++ 2008 Feature Pack significantly boosts the ability of MFC to deliver modern-looking user interfaces that will be familiar to Windows and Office users. Look at these new controls and see how MFC developers can significantly improve their application's look and feel.
By Nick Wienholt
- Using VC++ .NET - Article Published
03/04/2008
For large and complex applications, dealing with the amount of data collected can be difficult. See how the Visual Studio Team System (VSTS) Developer Edition Profiler can do an excellent job of finding performance problems by simply pointing it at an application and allowing it to collect data.
By Nick Wienholt
- Using VC++ .NET - Article Published
02/05/2008
Applications with great performance are a hallmark of C++ programming, and one of the best tools for achieving great application performance is a code profiler. Take a look at the Visual Studio Team System (VSTS) profiler, and see how it can be used to find code bottlenecks and improve performance.
By Nick Wienholt
- Using VC++ .NET - Article Published
01/09/2008
Learn how to rapidly develop applications and add-ins using ATL for Windows CE.
By Nick Wienholt
- Using VC++ .NET - Article Published
12/10/2007
Drill deeper into Mobile Development in C++ and go through the development and debugging of a Windows Mobile 6 application with a focus on MFC.
By Nick Wienholt
- Using VC++ .NET - Article Published
11/07/2007
Try a no-embedded-background-needed introduction into developing Windows Mobile applications in C++. With comprehensive support for smart device development in Visual C++ and great device emulation features in the Windows Mobile SDKs, mobile development is well within the reach of all Visual C++ developers.
By Nick Wienholt
- Using VC++ .NET - Article Published
10/02/2007
The release of Visual Studio 2008 brings support for using the Visual Studio Class Designer with Visual C++ projects. Look at the differences in how the Class Designer works with C++ compared to purely managed languages, and learn about the range of functionality available to C++ developers.
By Nick Wienholt
- Using VC++ .NET - Article Published
09/04/2007
Microsoft Foundation Classes continue to play an important role for C++ developers. Discover how to upgrade an existing application with MFC 9's full support for the Windows Vista look-and-feel.
By Nick Wienholt
- Using VC++ .NET - Article Published
08/02/2007
The conversion between common native types and the equivalent .NET Framework type is a common programming activity for interoperability development in C++. Visual C++ Orcas introduces a light-weight, template-based library for performing this conversion. This article will look at both the use of this library and how it can be extended to add new conversions.
By Nick Wienholt
- Using VC++ .NET - Article Published
07/16/2007
Take a quick look at the upcoming release of the new Visual C++ release slated for release in late 2008—Visual C++ Orcas. The Orcas release builds on the heritage of C++, offering great new features for achieving deep integrating with Windows Vista and better support for interoperating with managed code.
By Nick Wienholt
- Using VC++ .NET - Article Published
06/04/2007
For long-term Visual C++ developers, the CryptoAPI will be a familiar part of your programming toolkit. If you're developing Windows Vista applications, though, you should be applying the new Windows Cryptography API: Next Generation.
By Nick Wienholt
- Using VC++ .NET - Article Published
05/11/2007
Windows Vista introduces a new security concept called User Access Control (UAC), where local administrators have two access tokens—one representing the privileges of a normal user and the other holding the elevated privileges of the local administrator account. Here, you will learn how to properly implement the UAC to provide a rich user experience.
By Nick Wienholt
- Using VC++ .NET - Article Published
04/06/2007
Windows Vista brings tablet-style development to the mainstream by incorporating ink functionality directly into the core operating system. The greater availability of operating system support for ink is complemented by new Vista drivers from digitizer OEMs that provide the same functionality as a full TabletPC device, greatly increasing the potential client-base for ink enabled applications. This article will look at how an existing application can work with new forms of input without a major re-design.
By Nick Wienholt
- Using VC++ .NET - Article Published
03/05/2007
Within the new threading and synchronization APIs that Microsoft added to the Windows SDK for Vista, condition variables dramatically simplify the semantics of lock acquisition and management.
By Nick Wienholt
- Using VC++ .NET - Article Published
02/12/2007
Windows Vista allows you to define, secure, and use custom namespaces to prevent malicious applications from denying access to kernel object functionality.
By Nick Wienholt
- Using VC++ .NET - Article Published
01/05/2007
With the rapid increase in parallel computing, correct threading, and synchronization are vitally important to programmers building scalable, high-performance solutions. Explore the new one-time object initialization APIs in Vista from a C++ programmer's perspective.
By Nick Wienholt
- Using VC++ .NET - Article Published
12/06/2006
The way Vista closes applications during operating system shut down has changed from prior Windows versions' approaches. Learn how to provide your users with appropriate notification from the Vista shut down screen.
By Nick Wienholt
- Using VC++ .NET - Article Published
11/03/2006
Fusion is the code name for the .NET Framework sub-system responsible for locating and loading assemblies. It comes in handy for C++ developers who are working with the GAC.
By Nick Wienholt
- Using VC++ .NET - Article Published
10/04/2006
Find out what's become of the Windows Template Library (WTL) since Microsoft released it as an open-source project in 2004. Examine the recent WTL releases and see where WTL fits in the C++ programmer's toolkit.
By Nick Wienholt
- Using VC++ .NET - Article Published
09/06/2006
The application verification features in VSTS Developer Edition help identify errors that are detectable only when an application is running.
By Nick Wienholt
- Using VC++ .NET - Article Published
08/14/2006
In the days before .NET, COM's dependency on the Registry and its backward compatibility issues were the Achilles' heels of Win32 development. Learn a technique for deploying your existing COM components without the pain traditionally associated with the Registry.
By Nick Wienholt
- Using VC++ .NET - Article Published
08/04/2006
The Windows Vista Event Log offers a much richer experience than today's Event Log functionality. Dive into the code and tools that a C++ developer needs to use the new log.
By Nick Wienholt
- Using VC++ .NET - Article Published
06/05/2006
Native code continues to be the most powerful and flexible mechanism for producing applications that work closely with the host OS. For native development in Vista, get to know the new Windows Event Log features.
By Nick Wienholt
- Using VC++ .NET - Article Published
05/05/2006
While Visual Studio Team System cannot resolve the two intrinsic C++ unit-testing problems (cultural issues related to agile programming and lack of metadata in native C++), it does deliver a polished unit-testing framework for C++.
By Nick Wienholt
- Using VC++ .NET - Article Published
04/07/2006
Visual Studio Team System (VSTS) code annotations enable C++ developers to attach metadata to a method's parameters to explicitly define the correct usage of the method.
By Nick Wienholt
- Using VC++ .NET - Article Published
03/01/2006
The Static Code Analyzer that ships with Visual Studio Team System, Developer Edition can detect common security issues in native C/C++ code.
By Nick Wienholt
- Using VC++ .NET - Article Published
02/03/2006
The security issues with Standard C++ aren't as severe as those of C and the CRT, but a few exploits are possible if you misuse STL and iterators.
By Nick Wienholt
- Using VC++ .NET - Article Published
01/06/2006
The C run-time libraries (CRT) make writing code with buffer overrun vulnerabilities much more likely, but thankfully Visual C++ 2005 provides extended CRT functions that offer the same functionality with a broader safety net.
By Nick Wienholt
- Using VC++ .NET - Article Published
12/07/2005
Drill down deeper into MFC 8.0 with a look at control placement and event handling, the MFC classes used for the Windows Forms integration, and the Windows Presentation Foundation (formerly known as Avalon).
By Nick Wienholt
- Using VC++ .NET - Article Published
11/02/2005
The migration path from MFC to fully native applications is a slow one because Windows Forms lacks many of the advanced features of MFC. See how much easier MFC 8.0 makes Windows Forms integration.
By Nick Wienholt
- Using VC++ .NET - Article Published
10/03/2005
The Configuration Application Block is a viable solution for reloading changed configuration settings, but requires you rework existing applications. Learn how a Visual C++ assembly offers a much easier way.
By Nick Wienholt
- Using VC++ .NET - Article Published
08/01/2005
STL.NET provides a bridge between the worlds of traditional C++ templates and .NET generics. By allowing C++ developers to leverage their STL skills without precluding interaction with developers using other .NET languages, STL.NET promises the best of both worlds.
By Nick Wienholt
- Using VC++ .NET - Article Published
07/08/2005
This final installment wraps up the coverage of what's new in the IDE with a look at Tracepoints, new project types, enhancements to the Server Explorer, and new functionality for creating C++ projects.