I enjoyed reading the article “Windows® XP: Why It Won’t Die” in the April 8 edition of InformationWeek because I have experienced an example of this scenario firsthand. Some applications that were developed on Windows XP do not run well on newer Windows systems. I want to share with you my experience with compatibility problems and why I can see that Windows XP won’t die soon.
We developed a database tool that ran perfectly for many years on Windows XP. When we first ported it to Windows 7, we ran into a serious problem that we were able to understand and resolve only after going directly to Microsoft® for assistance.
It all started with a support request from one of our partners on behalf of their customer. After receiving a vague error message, nothing worked. I couldn’t reproduce the problem on my development XP machine, but as soon as I switched to Windows 7, I was able to re-create it. I couldn’t resolve the problem, and the customer was becoming impatient, so I started a discussion on one of Microsoft’s forums. Fortunately, someone on the forum proposed that I should contact Microsoft support directly. After going through a few hoops at Microsoft, I finally reached the right support group that could understand the error message that we were receiving. A Microsoft support engineer watched and recorded me running the application. After analyzing the recorded scripts for a couple of days, he finally told me what function was causing the error message. I reviewed the source code and reworked the program to better work with newer Windows runtime libraries.
From a technical perspective, I learned that the C/C++ runtime library on Windows XP is lenient when it comes to an uninitialized BOOL (Boolean) value. On Windows XP, an uninitialized Boolean (number) variable is treated as a false value. On newer systems, such a variable is neither true nor false, which breaks C/C++ programs that were originally developed on XP and have been running reliably for many years.
I can definitely understand why some people would not want to get rid of their XP system, especially because they may not have access to the original source code in order to fix similar runtime library incompatibility issues on newer systems. So, think twice before getting rid of your XP system!