![]() The answer to this can be found in the sources of the various runtimes - the code that implements basics like printf or std::thread and is used by almost every C/C++ application. These APIs have not been called from the Wizard-2020 source code, yet our final application somehow depends on them. The situation is different with the APIs marked in red on the right side. This time, Visual Studio is not at fault. Support for Windows 2000 was not a requirement back then.įortunately, the DLL can be freely downloaded for older Windows versions (look for Platform SDK Redistributable: GDI+), and also comes preinstalled with Windows 2000 Service Pack 4. I have deliberately used the GDI+ graphics library in Wizard-2020 to deal with PNG files, knowing that the library comes with Windows XP and later versions. This is an expected and minor issue though: ![]() Let’s try it out with the Wizard-2020 demo application from the previous blog post on Windows 2000:įirst of all, Dependency Walker tells us that GDIPLUS.DLL is missing. However, there is a modern reimplementation of it available on GitHub.īoth tools reveal the DLL files (shared libraries) on which an application depends, along with the called API functions, in a nice graphical user interface. Unfortunately, development on it has ceased and the last version exhibits poor performance on recent Windows versions. That tool has historically been shipped with multiple Microsoft development packages and is now available as a standalone download from the aforementioned link. The first answer to this question is always given by Dependency Walker. Why does an application actually run or not run under a certain Windows version? Hence, upgrading them is no option either.Īnyway, if you just want to compile a modern C++ application for an old Windows version, look no further. To make matters worse, these systems are usually full of proprietary software that has never been tested in a different environment. Industrial control systems have a lifetime of 20 years or more, so you will inevitably deal with an unsupported operating system at some point. ![]() I don’t want to advocate for using old and unmaintained operating systems here.īut if you are working at a company like ENLYZE, you meet them at customers everyday: In practice, applications compiled with Visual Studio’s build toolset for Windows XP development (called v141_xp) require at least Windows XP with Service Pack 3. The unrivaled compatibility of the Win32 API makes it possible to run your modern application even on Windows 2000 and older Windows XP versions – in theory at least! Writing an application in 2020 doesn’t mean that we have to forget about 2000 though: In my previous blog series, I have shown how to write Win32 applications in 2020 using the amenities that modern C++ brings.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |