LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

"Class Not Registered" after switching from 32-bit to 64-bit LabVIEW.

I recently upgraded LabVIEW 2012 from 32-bit to 64-bit.  Now I'm getting an error that says "Class not Registered".  It still works just fine with the 32-bit version. 

0 Kudos
Message 1 of 7
(3,593 Views)

I have moved several programs back and forth between 32 and 64 bit. Did you make sure to reconnect all the drivers and utilities to their 64 bit version? If anything still points to x32 it will cause errors.

0 Kudos
Message 2 of 7
(3,573 Views)

No I did not make sure to do that.  Could you give some details on how that's done?  I'm a chemist who knows very little about computers!

0 Kudos
Message 3 of 7
(3,535 Views)

Your post is very short on details. Could you elaborate? When does the error occur? (every time you open LabVIEW, only when you open a particular VI, or only when you run a particular VI, ...)

 

Does your VI reference an external component such as an ActiveX object or .NET assembly?

0 Kudos
Message 4 of 7
(3,530 Views)

As Nathan said your message is short on details. When you built your program you probably selected tools/instrument drivers or other stuff from the Labview 32 bit Instr.lib or vi.lib or other. When you port to x64 bit you have to go thru the reselction process for each of the component items from the Labview x64 bit instr.lib or other directory.

0 Kudos
Message 5 of 7
(3,526 Views)

Thank you Nathan and Sunshine.  The problem is I didn't build the program - it came with the instrument.  As far as I can tell this is what's going on:  The vi's are replete with these activeX objects - all communication with the instruments is done through invoke and property nodes.  After switching to 64-bit the very first sub vi has an error at the very first command (Err (-2147221164)). It's a reference (seemingly to a class but I actually have no idea what that means) passed to the "Open Automation Function".  I'll attach a screen shot for the sake of overkill.  

0 Kudos
Message 6 of 7
(3,515 Views)

Normally you can't load a 32-bit component into a 64-bit application. The ActiveX component is most likely 32-bit, resulting in the error you're seeing. You have a couple of options:

 

1) Try to get a 64-bit version of the ActiveX component

2) Install a 32-bit version of LabVIEW (in parallel with the 64-bit version; it will work on a 64-bit operating system) and use that instead

3) Attempt to load the 32-bit ActiveX component through a DLL surrogate, as explained here: http://www.gfi.com/blog/32bit-object-64bit-environment/ and here: http://stackoverflow.com/questions/8540096/com-surrogate-for-third-party-component

 

I can't provide any help on that last solution, but it appears that others have made it work.

0 Kudos
Message 7 of 7
(3,509 Views)