LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Where/how does LabVIEW construct its list of Type Libraries

Hello!
      I want to use a component from a Type Library that's installed but doesn't appear in LabVIEW's (Automation) Type Library browser.  The library shows-up (in LabVIEW) on two other machines (one XP, one Win2k) but not a particular XP box.  It seems to be a registry "issue" but I can't detect the difference - having searched/compared many individual keys on the two XP boxes.
 
Does anybody know how LabVIEW constructs it's list of Type Libraries?  Are there any Win API tools that might help in expolring this problem?
 
Cheers.

Message Edited by tbd on 02-12-2007 11:44 AM

"Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)
0 Kudos
Message 1 of 8
(3,791 Views)
From another forum post, I located a utility called COM Explorer. I also located a forum post that suggests to manually register this ActiveX control.

Unfortunately I have not used the utility myself, but it appears that it may be what you need to verify that your ActiveX control is registered successfully. Essentially LabVIEW will recognize any ActiveX control that conforms to the protocol. Because it is recognized on some machines and not this other one, that tells me that this is most likely not a problem with the control itself. I hope this is useful for you. Please post back if this utility helps you to locate the source of the detection difficulties. Thanks,

Mike D.
0 Kudos
Message 2 of 8
(3,767 Views)

Hi Mike,

      Thank you for the ideas!  Like the user at the linked-thread, my DLL is definately registered.  This particular DLL (msvidctl.dll) contains two Type Libraries (TLBs).  Both TLBs show-up on two machines (in LabVIEW's TLB browser), though only one is visable on the box in question.  Knowing how LabVIEW constructs the TLB list - what API calls it makes - might have helped to diagnose the problem. 

I downloaded COM Explorer - looks like the perfect tool for this! Smiley Happy  ( Now I just need to obtain our company credit-card! - Smiley Wink  - )

Cheers.

"Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)
0 Kudos
Message 3 of 8
(3,760 Views)
follow up -
It appears COM Explorer doesn't see the "Microsoft Tuner 1.0 Type Library" that LabVIEW sees on the working station!Smiley Surprised  I realize now that there are two different versions of LabVIEW involved.  It happens that both working stations (WinXP and Win2K) are running LabVIEW 7.1.  The non-working station is LV 6.1.
 
Is it possible that LabVIEW 6.1 wasn't sophisticated enough to handle msvidctl.dll correctly (it contains two TLBs) - and that COM Explorer has the same limitation?
 
Cheers. 
 
 
"Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)
0 Kudos
Message 4 of 8
(3,741 Views)
PJ,

While I am surprised that the COM Explorer was not able to see that type library, I do not know enough about that software to determine why this may be the case. However, I would assume that this utility accesses a Windows list of registered type libraries which is the same way that LabVIEW populates its list of type libraries. One possibility is that this type library is not correctly registered with Windows on this machine to be detected by either COM Explorer or LabVIEW. While I do not know the specific functions used to obtain this list from Windows, this information would most likely be contained somewhere on the MSDN. We might want to search MSDN to find out the mechanism by which we can check if this type library is correctly registered.

Additionally, if the library is incorrectly registered then it should not matter which version of LabVIEW is used to view this type library list. A good test of this theory might be to try installing LabVIEW 7.1 onto the computer in question to see if the type library is successfully seen from the library browser. I am interested to hear what you find out, please post back. Thanks!

Mike D.
0 Kudos
Message 5 of 8
(3,731 Views)
Hi Mike,

@duffman Says: wrote:
PJ,

While I am surprised that the COM Explorer was not able to see that type library, I do not know enough about that software to determine why this may be the case. However, I would assume that this utility accesses a Windows list of registered type libraries which is the same way that LabVIEW populates its list of type libraries.


Yes, I was very surprised too - LV7.1 listed a TLB the COM Explorer didn't!  Thanks for the MSDN suggestion - expect to look there soon.  Was shying-away from installing LV7.1 on another machine  - may have one-too-many copies installed as-is. Smiley Wink Will go ahead and follow-up!

Cheers.

"Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)
0 Kudos
Message 6 of 8
(3,725 Views)
PJ,

Please keep us posted. I am curious to know what you find out. Thanks,

Mike D.
0 Kudos
Message 7 of 8
(3,702 Views)

Hi Mike,

I should have replied sooner!

On a machine with both 6.1 and 7.1 installed, the second (of two) TLBs is selectable in 7.1 but not in 6.1.  It seems LabVIEW 6.1 isn't able to display all the components of DLLs which contain multiple TLBs.  If so, then to use components of the second TLB (under 6.1) will require some kind of work-around and I've posted a new question on this specific subject. Smiley Happy

Of course, any help is appreciated!

Cheers!

"Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)
0 Kudos
Message 8 of 8
(3,697 Views)