LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to extract VI's from a .lvlib file so that the do not belong to that library anymore?

Hello everyone,

I would like to extract the VI's belonging to a project library (.lvlib) file so that they do not belong to that library anymore and the name of the library does not appear at the beginning of the VI's name. What should I do?

The VI's actually belong to the driver of an instrument, which I just have the library file of an old version of this driver which is 32-bot, and I would like to construct 64-bit VI's from them to use in 64-bit LabVIEW. 

There are a couple of VI's in this library file which their name contain "-" so that in the library, their names appear with "*" or "?" (e.g, "-IDN-.vi" appears as "*IDN?"). What should I do about that also?

Best regards,

Nader

Message 1 of 13
(3,565 Views)

@NaderMostaan wrote:

Hello everyone,

I would like to extract the VI's belonging to a project library (.lvlib) file so that they do not belong to that library anymore and the name of the library does not appear at the beginning of the VI's name. What should I do?

The VI's actually belong to the driver of an instrument, which I just have the library file of an old version of this driver which is 32-bot, and I would like to construct 64-bit VI's from them to use in 64-bit LabVIEW. 

There are a couple of VI's in this library file which their name contain "-" so that in the library, their names appear with "*" or "?" (e.g, "-IDN-.vi" appears as "*IDN?"). What should I do about that also?

Best regards,

Nader


Unless your drivers use dlls, you should be able to use them without having to do anything to them.  The source code should compile in either environment - except i think it will force a recompile because it considers the new environment to be a new platform.  If the drivers contain dlls, you'll have a difficult-to-impossible road to travel, as you will have to find and/or install the appropriate version of the dll.  If the dlls are named the same, you might be okay.  If they aren't you're going to have to manually substitute all instances of that dll.

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 2 of 13
(3,533 Views)

Tools >>> LLB manager?

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 3 of 13
(3,530 Views)

@Ben wrote:

Tools >>> LLB manager?


No that is only for the old LLB files, which was simply a single level archive file.

The newer lvlib files are a very different kind of library, similar to LabVIEW classes but without the OOP part. The only way to remove VIs from an LabVIEW library is to open the lvlib file in LabVIEW and right click on the VI in there and select "Remove from Library" or something to this wording.

Rolf Kalbermatter
My Blog
Message 4 of 13
(3,507 Views)

Isn't the whole point of this exercise so the OP can use the library in LV 64-bit?  In that case, should he be able to just use the library directly (assuming no dll dependencies)?  I mean, I would copy the library and its files and use the copies since it will get recompiled, but still.  Should be straightforward.

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 5 of 13
(3,490 Views)

Well it is hard to say what the OP really wants. The expanation about moving to 64-bit LabVIEW is pretty vague and there is indeed no reason why you shouldn't be able to just use the existing driver in 64-bit LabVIEW if it doesn't make use of DLLs or ActiveX drivers.

But the request is about making VIs independent of the lvlib, which is what I explained how to do. But I agree, for a pure LabVIEW VI library to be used in 64-bit LabVIEW, this should not be necessary at all!

Rolf Kalbermatter
My Blog
0 Kudos
Message 6 of 13
(3,482 Views)

@rolfk wrote:

Well it is hard to say what the OP really wants. The expanation about moving to 64-bit LabVIEW is pretty vague and there is indeed no reason why you shouldn't be able to just use the existing driver in 64-bit LabVIEW if it doesn't make use of DLLs or ActiveX drivers.

But the request is about making VIs independent of the lvlib, which is what I explained how to do. But I agree, for a pure LabVIEW VI library to be used in 64-bit LabVIEW, this should not be necessary at all!


Sorry, my post sounded somewhat combative, which was definitely unintended.  🙂  It's always difficult to answer when the OP focuses more on what they are trying to do instead of why.

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 7 of 13
(3,473 Views)

What I really want to do is as follows:

The .lvlib file contains VI's belonging to the drivers of Agilent PSG signal generator. These drivers are of VXI plug&play type, so there are just VI's together with a 32-bit .dll file which contains some functions that these VI's use, so the driver VI's need the .dll file. I want to extract the VI's from the .lvlib because the instrument is now discontinued, and the new drivers the vendor provides are IVI type drivers, So for my 64-bit application, if I want to work with the same program I used to work with in the 32-bit platform, then my plan is to extract the VI's and generate the 64-bit .dll. file from them and reuse them in the 64-bit application, and I don't want to use the IVI drivers because they potentially need changes in the code.

0 Kudos
Message 8 of 13
(3,467 Views)

What I really want to do is as follows:

The .lvlib file contains VI's belonging to the drivers of the Agilent PSG signal generator. These drivers are of VXI plug&play type, so there are just VI's together with a 32-bit .dll file which contains some functions that these VI's use, so the driver VI's need the .dll file. I want to extract the VI's from the .lvlib because the instrument is now discontinued, and the new drivers the vendor provides are IVI type drivers, So for my 64-bit application, if I want to work with the same program I used in the 32-bit platform, then my plan is to extract the VI's and generate the 64-bit .dll. file from them and reuse them in the 64-bit application, and I don't want to use the IVI drivers because they potentially need changes in the code.

0 Kudos
Message 9 of 13
(3,466 Views)

That’s not how this can work. The 32 bit DLL used in this driver is not derived from the VI library. Instead there must be some LabWindows/CVI project file with according C source code that was used to create the DLL and the LabVIEW library was then created through the instrument driver wizard from that LabWindows CVI project as a wrapper for the DLL! As LabWindows CVI was until recently a pure 32 bit development environment, those instrument drivers were always only distributed with the 32-bit DLL.

 

So what you have to do is to get the original LabWindows/CVI instrument driver and compile it in a LabWindows/CVI version that supports 64-bit compilation to a DLL. No changes to the LabVIEW driver “Should” be necessary at all once you replace the 32-bit DLL with its 64-bit variant! Buf there are of course a number of sins a C programmer can do that would prevent a seamless replacement of a 32-bit DLL sith its 64-bit counterpart!

Rolf Kalbermatter
My Blog
Message 10 of 13
(3,458 Views)