It's Always Something, Even If It's Not: Supply DLLs With Your App

Dear Dr. GUI:

We are developing a Windows 95-based application using MFC30.DLL and would like to not have to ship the MFC30.DLL if possible. MFC30.DLL always seems to be installed with Windows 95. Is this true, and can we count on it always being true?

Dr. GUI replies:

Absolutes scare me. If I don't have food poisoning today, does that mean I will never have it? If I am happy today, will I always be happy? If I missed that deer in the road, will I always miss deer in the road? If I quit saying these silly things, will I never say another silly thing?

Our very own Microsoft Foundation Class Library (MFC) guru seems to have problems with absolutes as well. The bottom line is no, you cannot count on MFC30.DLL (or future versions such as MFC40.DLL, in my opinion) being there. The supporting rationale behind this is as follows:

· MFC30.DLL is not installed if you don't install applications that use it.

· MFC30.DLL does not exist on Windows NT 3.51. To qualify for the Windows 95 logo, your application needs to work on Windows NT. Thus you need to ship the DLL.

· You must ship all the MFC DLLs as a set. Otherwise you run the chance of breaking an application that has already been installed. This means that MFC30.DLL, MFCO30.DLL, MFCD30.DLL, and MFCN30.DLL need to be shipped and installed.