I have a 32-bit application, that uses a VC++ 6 developed 32-bit .DLL (deployed as Win32UMinDependency) that I can't register on a Windows 7/8 64-bit machine. Along with the application are vbAccelerator ActiveX controls, many other 3rd party .DLL's, and in-house built .DLL's. I can register every single .DLL in the software package but one. Why is this?
I have tried using
system32, I have tried to put the .DLL in the
SysWOW64 folder and tried to register, then the same with
system32 folder. I have tried to unregister. I tried old versions, new versions, current version. I have tried running application in different compatibility modes. You name it, I tried it. It simply doesn't work.
This behavior is odd, because the .DLL, along with all others, are installed on the machine with an InstallShield built .MSI setup package, and the application runs fine on a clean install. But we ran into a bug--after an N amount of reinstalls--where I had to install VB6 on the machine and step through the code to see what .DLL was having problems. It just so happened to be the .DLL I can't register, and then I noticed the ActiveX controls weren't displaying their data (the grid had data, but the data wasn't being displayed).
After creating a new user account --> giving it Admin privileges --> logging onto it, then unistalling VB6 and trying to install the VS6 package (VB6, VC++6, MDAC, VS6 Service Pack 6), it failed. So I tried to install the original VB6 package again, and that failed (don't remember the error). After getting frustrated, I loaded my application and everything worked fine, however I still couldn't register the .DLL. I switched back to the original user account and it worked there also.
So, how is it possible, that the .DLL can have a key in
regedit and an application can work fine, to not being able to load the .DLL in code, to Windows failing a VS6 install, back to the application working again?