Library tutorials & articles tagged with c++
-
Process Management
by Joseph M. Newcomer
Some techniques for managing processes in a program. Oriented to MFC programmers, since it includes MFC examples and defines a class for asynchronous process completion notification.
-
Saving the DC context
by Joseph M. Newcomer
Having trouble keeping your DC intact? Here's an article on how to do this far more easily using ::SaveDC/::RestoreDC, or CDC::SaveDC/CDC::RestoreDC, as well as a C++ class to make it even easier
-
A Quick view from C/C++ to C#
by John Godel
A quick view from C/C++ to C#, the new .NET language from Microsoft
-
Surviving the Release Version
by Joseph M. Newcomer
OK, you've built the project, debugged it, and you're ready to ship. You compile the Release version of the program, and your world crumbles to dust. Find out what can be wrong, and what you can do about it.
-
Optimization: Your Worst Enemy
by Joseph M. Newcomer
Optimizing a program before you know where the time is going is a meaningless activity. It wastes your time, produces code that is harder to write, harder to debug, and harder to maintain, than unoptimized code. This essay discusses some of the issues of why you should not do pre-optimization.
-
Using User-Interface Threads
by Joseph M. Newcomer
I discovered the utility of user-interface threads a few weeks ago. This essay captures what I learned. In particular, there are some interesting issues of thread initialization that are not readily addressed. This also discusses why a user-interface thread may have no GUI objects associated with it
-
Avoiding Multiple Instances of an Application
by Joseph M. Newcomer
In Win16 it was easy: you looked at the hPrevInstance parameter to WinMain and if it was nonzero, you were the second instance. Done. In Win32 it isn't as easy. And there are several wrong ways, and some that don't work at all. This essay explores the techniques and tells you what the pitfalls are,
-
Worker Threads
by Joseph M. Newcomer
This describes techniques for proper use of worker threads. It is based on several years' experience in programming multithreaded applications.
-
Message Management
by Joseph M. Newcomer
The use of user-defined messages gives you additional power and control over your application, and provides an often convenient method for passing information between threads and applications. This essay goes into considerable depth on how to handle user-defined messages, inter-thread messages, and
-
Attaching and Detaching Objects
by Joseph M. Newcomer
When you create an Windows-related object in MFC, you are actually creating a "wrapper" around the underlying object. There are interactions between MFC and Windows which can get you into serious trouble if you are not careful. Read this to learn more.
-
A Validating Edit Control
by Joseph M. Newcomer
Have you ever wanted a control that only accepted valid values and gave feedback to the user? This is a little project that illustrates the techniques for building a validating edit control.
-
Dialog Box Control Management
by Joseph M. Newcomer
Why you should never call EnableWindow or other such calls except in one central place. Think of control enabling as a set of constraint equations. Much easier to maintain if the computations are centralized. Find out how I do it, and why I think this is a good way to do it.
-
Avoiding UpdateData
by Joseph M. Newcomer
Why you should never call UpdateData yourself
-
Avoiding GetDlgItem in MFC
by Joseph M. Newcomer
My view: If you're writing more than one GetDlgItem per year, you're probably not using MFC correctly. Find out why, and what to do about it.
-
A Checksum Algorithm
by Joseph M. Newcomer
Historically, checksums have been used to increase data transmission reliability, whether from a serial line or network, tape drive, or disk drive, among the many data sources that require reliability checking. However, checksums have other uses, such as in dialog box change-state maintenance, docum
-
String Concatenation Component
by Michael Balloni
An efficient string concatenation component to replace VBScript's poor performance.