Note: This post will be specific to Windows 7 and 32 bit applications written prior to Windows 7; but the idea pertains to pretty much any legacy application.
Sometimes legacy code is important and has to be run on modern operating systems. The reasons for this can vary.
Newer operating systems like Windows7 provide compatibility modes in them to support older applications, but sometimes you get error messages when you run them.
I like to understand why as much as the how to get legacy applications to run on a modern operating system so that I can prove to myself that the application can execute ok.
So the scenario is that you wrote an awesome program in the 1990’s and wish to run it in 2012. However, try all you may it does not run at all 😦
A tool like Dependency Walker (http://www.dependencywalker.com) can open any of your legacy executables and provide a dependency tree of all dynamically loaded libraries the application wishes to use.
Sometimes in Dependency Walker’s error log you will find some dll’s that are not found. For example:
Using a tool such as this, you can provide real time feedback to developers so that they can make changes that will enable their applications to run on modern operating systems.
In my particular case, the executable I tried to open with dependency walker reported the above messages; however when I ran the application in compatibility mode Windows 95, I was able to execute the program just fine.