Welcome to the C++ Users Group for February 1999. This month we have two completely different programs to discuss. One program was originally created last year about this time called "Disk Free for Windows". This is a Visual C++ program that presents a bar graph on the top of the screen showing the space utilized by all disk drives. The second program that we will be discussing is a command line based program that runs under Windows 95/98 or under Windows NT. It is a program used for troubleshooting your system when the other programs fail to work. Here the details.
We discussed "Disk Free for Windows" last February and since that time I have used it extensively on many different machines. However, by coincidence, those machines were always Windows NT computers. Because of this I failed to realize that some people would like to use this on a "Fat32" system with large hard drives. Later in the year 1998, we worked on a program called the "Disk Size for Windows" which included some algorithms for obtaining the disk specifications on a fat 32 system. It was a fairly simple operation to take the class developed for the fat 32 system and add it into the C++ code for the Disk Bar Chart program. In addition to that, several minor enhancements have been accomplished which correctly position the window on the screen even if there are extra menus visible, such as the task bar. So we have a major change and a minor change. The major change enables use on Windows 98 and other fat 32 systems such as Windows 95 the version. The minor change includes some better screen handling. We will be discussing both of these at the early part of the meeting.
I have created a command line based program called "FINDDLL" in order to help diagnose problems with missing DLL files on computer systems. The classic problem that occurs is that the user clicks on an icon for program and a message appears that says "missing DLL". Unfortunately it normally doesn't say which DLL. There doesn't seem to be any easy way to figure it out. One thing is known however and that is that the name of the file is usually hard coded into the executable. This means that if we search the executable for any filename with the extension DLL we can come up with a list of possible candidates. Now, once we have the list, we can go through each name on the list and check if it exists on the computer. It is not necessary to search the entire computer. There's a prescribed search-order anytime a program wants to locate a DLL. The program first looks in the current working directory. It next looks in each directory specified in the path. Many computers have paths that are hundreds of characters long that include dozens of directories. This is not a problem since we just go through them all one at a time. When the program finds a DLL, it lists the directory, the size and the date of the file. Occasionally the DLL appears in more than one directory. This can be a disaster if the program expects one version of a DLL and actually tries to use a different version. This utility program demonstrates the use of some hard drive functions and in particular random access of the hard drive. It also includes functions that obtain the size and date of the various files.
Source Code FilesFor help, email me at b a r n o l d @ b l a s t . n e t