Visual FoxPro crashes after installing hot fix or service pack 2
2009-09Sep-15
This is an error report that increasingly comes up lately. Visual FoxPro applications load two files when you run the EXE or instantiate a COM server: VFP9R.DLL and VFP9Rxxx.DLL. The first is the actual runtime library; the second file is a localized resource file. This file contains all localized strings such as menus, error messages, dialogs, names for months and week days, and so forth. There are multiple versions of this file. VFP9RENU.DLL is the English version, VFP9RDEU.DLL the German version, and so on. Which file Visual FoxPro loads depends:
If you have specified a particular version using the -L command line switch, this is the library that VFP loads.
Otherwise Visual FoxPro uses the regional settings of the operating system to load the correct runtime.
If the corresponding file cannot be found, Visual FoxPro always reverts to VFP9RENU.DLL, the English version.
These files are searched for in the current directory and the Windows path. That means, if you have one of these files in your System directory, Visual FoxPro might very well find and use this file. A crash happens when there's a version mismatch. The RTM version of VFP9R.DLL needs the RTM version of VFP9RENU.DLL, the SP1 version needs the SP1 version, and the SP2 version needs the corresponding SP2 file.
One scenario that causes a crash is having a SP1 VFP9Rxxx.DLL somewhere in the path and then installing the hotfix. If the resource file hasn't been replaced, too, Visual FoxPro will crash. This is more likely to happen outside English speaking countries, because SP1 and SP2 do contain localized versions, but the hot fix does not: There's only a VFP9RENU.DLL embedded into the MSM file. Before you can install the hotfix you should install SP2 to make sure that all runtime files are up-to-date.
If you or your clients experience crashes after installing the new version, search the entire hard disk to see if there are any older VFP9R*.DLL files around. Make sure to search hidden folders, as well.
In my tests the version difference between SP2 and the hotfix does not seem to inhibit the same behavior. That is, the hotfix version of VFP9R.DLL works with the VFP9RDEU.DLL version of service pack 2.
Otherwise Visual FoxPro uses the regional settings of the operating system to load the correct runtime.
If the corresponding file cannot be found, Visual FoxPro always reverts to VFP9RENU.DLL, the English version.
These files are searched for in the current directory and the Windows path. That means, if you have one of these files in your System directory, Visual FoxPro might very well find and use this file. A crash happens when there's a version mismatch. The RTM version of VFP9R.DLL needs the RTM version of VFP9RENU.DLL, the SP1 version needs the SP1 version, and the SP2 version needs the corresponding SP2 file.
One scenario that causes a crash is having a SP1 VFP9Rxxx.DLL somewhere in the path and then installing the hotfix. If the resource file hasn't been replaced, too, Visual FoxPro will crash. This is more likely to happen outside English speaking countries, because SP1 and SP2 do contain localized versions, but the hot fix does not: There's only a VFP9RENU.DLL embedded into the MSM file. Before you can install the hotfix you should install SP2 to make sure that all runtime files are up-to-date.
If you or your clients experience crashes after installing the new version, search the entire hard disk to see if there are any older VFP9R*.DLL files around. Make sure to search hidden folders, as well.
In my tests the version difference between SP2 and the hotfix does not seem to inhibit the same behavior. That is, the hotfix version of VFP9R.DLL works with the VFP9RDEU.DLL version of service pack 2.