PBDR.COM

About   -   Contact   -   Purchase   -   Search   -   What's New

 
 
Alternative solution for COMDLG32.OCX, COMCTL32.OCX, COMCT232.OCX Loading Errors
As mentioned in the previous article, a frustrating occurrence for Visual Basic 5 users is when suddenly, for no apparent reason Visual Basic 5 refuses to load in COMDLG32.OCX, COMCTL32.OCX, or COMCT232.OCX.

Instead the error message 'Could Not Be Loaded' is given despite such files existing in the system directory and VB 5 knowing the correct names of the files. This means that you are not able to use the common dialog controls: toolbar, status bar, image list, progress bar, tree view, list view, slider, etc. Therefore, this article has kindly provided by Amy Carlstrom, to offer an alternative solution:

Recently I decided to remove a second partition I had put on my hard drive. I had to format and reinstall Windows. After having done this, I ran into a bit of a problem with my Visual Basic project files that used the COMCTL32.OCX dialog control. Upon trying to load them with Visual Basic (the same version I used to create them, there was no change in that) it would display the following error message:

'COMCTL32.OCX' could not be loaded -- Continue Loading Project?
Well, I searched the internet extensively for some solution to my problem. Everywhere I looked, the same solution was presented. I would need to go into the registry editor, delete the registry key for the control, then re-register it. 

Supposedly, after doing this, everything should have been fine. There were a few different ways that were offered on how to do this, from going into the registry editor manually and deleting the key, to using a program called RegClean. I tried multiple times, using different approaches, but none of this made any difference. 

At this point, I was frustrated. I decided to go into the project files with Notepad and see what I could find there. Once I had the main project file opened, I could see exactly where the control was called. It was at the top of the file and looked like this:

Object={6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0;
      ..\..\..\..\SYSTEM\COMCTL32.OCX
Well, I opened the file of the form that used the control and, surprise surprise, I found a similar line that looked like this:
Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "COMCTL32.OCX"
First, I compared the key, since it listed the key in the files, to the one in the registry editor, to make sure they matched. Not only did they match, but it was the key that was listed on the Microsoft website as belonging to the control. So I knew that couldn't be it.

Then I checked that it pointed to the correct folder where the control could be found -- all those dots and slashes do eventually add up to the C:\WINDOWS\SYSTEM folder. So it was looking in the right place. 

Last, I noticed the part that says "#1.3". I remember from looking in the registry editor that the folder where the control was registered was listed as version "1.2". I wondered if that could be it. 

Since the project file wasn't working and I had run out of solutions, I figured I couldn't screw it up any worse. I decided to take a gamble. I changed the "1.3" in each of the lines to "1.2" and saved both the project and the form files. I crossed my fingers and loaded the project up in Visual Basic. Voila! The project loaded with no errors and the controls were on the form, right where they were supposed to be. 

So I'm writing this to you so that you can hopefully add it to your site, providing a new solution to an old error, and maybe saving someone a lot of trouble down the line (like I went through). 

Thanks, 

Amy Carlstrom

 

Top of Page

Legal Notice

Ken Howe 2011