LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Problem UnRegistering DLLs in LV5.1 with Win2K?

I have written an ActiveX DLL in VB6.
(written and built on a separate machine from LV development)

I copy the VB code and DLL to the LV development machine.
I register the DLL using Regsvr32.

Use it in LabVIEW 5.1.1 (OK).

So, while debugging I find that I have to make code changes to the DLL.

Make changes in VB code on VB machine, rebuild DLL.

copy revised VB stuff (including DLL) to LV machine.
unregister DLL with regsvr32
Register new DLL with regsrv32

return to LV to continue debugging.
Now, when I "Select ActiveX Class" for my "Automation Refnum"
I find 2 entries in the "type library" list.
One is the new DLL, one is the old one which doesn't exist anymore.

(Oops! I
should have unregistered the old DLL
before copying the new one over it!)

Now I cannot get rid of the entry in the list, for the old DLL,
even though it no longer exists.

Not only that, but I cannot find an entry in the system registry, so that I could manually delete it.

Anyone have an (any?) idea of what to do?

Thanks
Dave
0 Kudos
Message 1 of 8
(3,861 Views)
Hi Dave-

You are correct that the unregistering of the dll should remove the tlb from the list. Maybe if you reinstall the original DLL with its original name and then re-uninstall it over the exisiting tlb, it will get rid of it? Some things with type libraries and the COM model are still a little difficult in Windows. I searched www.msdn.microsoft.com for "deleting type libraries" and found a few things but nothing right on the mark. It might be worth checking out further, however.

good luck
ben schulte
national instruments
0 Kudos
Message 2 of 8
(3,861 Views)
Hi Ben,

The thing is that I don't (didn't?) find ANY
.tlb or .olb files. Nor did I find a registry entry. It's (or I'm) not very clear where to look for it, though.
(Do you have any idea where to look?)

So, I'm thinking that LabVIEW keeps some sort of list of the registered DLLs / OCXs?
One thing that worries me most is that when I build this (VIs) as an executable, if the end user either moves the DLL or registers a new version of the DLL, that will break the program.

Thanks in advance
Dave
0 Kudos
Message 3 of 8
(3,861 Views)
There is an utility called "ActiveX Test-Container" as part of the Microsoft
Visual Studio package. It offers the possibility to register/unregister
ActiveX-libraries.

Philipp
0 Kudos
Message 4 of 8
(3,861 Views)
ActiveX Control Test Container (app) will let you insert imbedable objects into a test container. Unfortunately (?) my DLL is only a set of calculations. I was able to see it, and the artifact of the non-existant one in the OLE Viewer. Then I was able to find the registry entry for the existing one! (HKLM\Software\Classes\...) but I do not find an entry for the ".TLB" related to the non-existant DLL!
So now I wonder how I can locate whatever it is that contains the list of "registered" typelibs, which must be some sort of mirror of the registry.

Thanks
Dave
0 Kudos
Message 5 of 8
(3,861 Views)
The fifth item in the File-Menu should be "register activex plugin" (I just
have the German version, so I dont know the exact menu-item names). Within
that dialog it should be possible to unregister.

Philipp
0 Kudos
Message 6 of 8
(3,861 Views)
Yes. It was a good idea.
I tried that, but it only allows you
to see imbeddable objects, controls and such.

Thank you.
Dave
0 Kudos
Message 7 of 8
(3,861 Views)
The discussion so far really helped ,but even after registering (both .exe and .tlb files) manually , I'm unable to find my type library in the drop-down list (LabVIEW 6i). Does anybody clearly know where LabVIEW stores these .tlb entries ?

Thank you,
Shiv
0 Kudos
Message 8 of 8
(3,861 Views)