X
47 Rate this article:
No rating

INTERNAL: Uninstalling Windows IDL 6.3 follows Windows convention to remove unreferenced shared library files

David Blackston
Topic:
Uninstalling IDL 6.3 for Windows follows the prescribed Windows convention of removing no-longer referenced shared system library (DLL) files. The purpose of this article is to discuss possible side-effects of following this prescribed convention.Discussion:
When a well-behaved Windows application is uninstalled, any shared system library files that were required by that application, and are not required by other applications still on the system, are removed during the uninstallation process.

The mechanism to establish use of shared library files is for an installed application to increment a system reference count number on each required shared library file. Then when an application is uninstalled, the reference count for the required shared library file is decremented. When an uninstaller for an application determines that one of its required shared library files has a reference count of "0", then by convention the uninstaller removes that "0" reference-count shared library file. This convention helps to avoid the accumulation of abandoned shared library files from uninstalled applications.

Some Windows applications do not follow this convention of incrementing and decrementing the system reference count of shared library files. In such cases, if a required shared library file is removed during the uninstallation of an application that follows the Windows convention of incrementing and decrementing the file reference count, the non-conforming installed application may unexpectedly fail. In one scenario, if the non-conforming application is a boot-time loaded NT-service application, the application failure may prevent the successful loading of the Windows operating system. To remedy such a problem, it would be necessary to launch Windows in Safe-Mode, and then to disable invocation of the failing NT-service application, in order to be able to successfully load the Windows operating system in normal operation mode.

If uninstallation of IDL 6.3 results in the "0" reference count removal of shared library files that are still required by an application that does not follow the Windows convention of incrementing and decrementing the system reference count of those shared files, it may be possible to restore the required shared system library file in order to restore functionality to the affected application.

For reference, below is a list of shared system library files that are reference-counted by the IDL 6.3 installer/uninstaller application. These files can be found on the IDL 6.3 for Windows installation CD.

Msvci70.dll: v7.0.9466.0
Msvcp70.dll: v7.0.9466.0
Msvcp60.dll: v6.0.8972.0
Msvcr70.dll: v7.0.9466.0
msvcrt.dll: v6.0.8797.0
mfc70.dll: v7.00.9466.0
mfc70u.dll: v7.00.9466.0
Mfc71.dll v7.10.3077.0
Mfc71u.dll v7.10.3077.0
Msvcr71.dll v7.10.3052.4
Msvcp71.dll v7.10.3077.0
Comdlg32.ocx: v6.8.84.18
Comcat.dll: v4.71.1460.1
Msmapi32.ocx: v6.0.81.69

The following additional Windows NT/95 system files might also be installed/uninstalled by the IDL 6.3 installer/uninstaller program.

Asycfilt.dll: v2.40.4275.1
Oleaut32.dll: v2.40.4275.1
Olepro32.dll: v5.0.4275.1
Stdole2.tlb: v2.40.4275.1