0
votes

We have a .dll that was programmed in VB6 and is accessed via a COM interop .dll in our project.

We are getting this error when we try to instantiate it in our project

Retrieving the COM class factory for component with CLSID {D4F5C067-EF0C-4F8D-AEC7-85CA67EE68C6} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Now, the same version of this Interop .dll is reference in plenty other of our projects, and works fine, also works fine when we access it via Microsoft Excel (since it is COM).

Also, what's the most important find is, it doesn't throw this in Windows XP machines, only Windows 7 machines.

Does anyone have any idea what this could be? Or how I would start looking for a solution?

After further research, it's still not working, but I can confirm we are both targeting an x86 machine, and that regsvr32 <dll> doesn't work.

Thanks.

1
clearly the class isn't registeredDavid Heffernan
maybe you are missing a dependency dll, maybe this could help: stackoverflow.com/questions/2873668/…yms

1 Answers

0
votes

When you say regsvr32 is failing, do you get an error message?

Is your Win7 machine 64 bit? If yes, there are two versions of the Regsv32.exe file:

  • The 64-bit version is %systemroot%\System32\regsvr32.exe
  • The 32-bit version is %systemroot%\SysWoW64\regsvr32.exe

Which one are you using?