|Delphi Clinic||C++Builder Gate||Training & Consultancy||Delphi Notes Weblog||Dr.Bob's Webshop|
What runtime where
Recompiling third-party software sometimes takes you to places you would not dream of ending up at the start of such an effort. We are using Rogue Wave libraries for a system we're implementing for a customer. The Rogue Wave people say on their Web site that they have an issue with Borland, which is the reason for them to dub the Borland compilers as 'not supported'. Well, then I will support them myself.
What did I find?
What this activity yielded was having to dig around in the source code of the runtime library. While inspecting rtldll.c, I saw that they inspect an environment variable called SHOW_RTLDLL_VERSION. If such a variable exists and if the first character of the environment contains an arbitrary character except 0, 2, 's' or 'S', then it will pop up a dialog box showing you the pathname from which it was loaded and some other information. If you set the environment variable to '0', nothing will happen. If you set it to '2' or s or 'S', then you only will see the message if the runtime DLL is not located in the Windows system-directory.
What good will it do you? Sometimes you have the same DLL with slightly different versions in different directories in your PATH environment variable. Loading the wrong version of the runtime DLL can lead to funny behaviour if not outright crashes. If you suspect that the wrong version is loaded, you can quickly determine from where the runtime library is loaded.