04-28-2006 04:03 PM
04-29-2006 03:01 PM
I also use the plugin approach where a compiled .exe plugs in VIs which share vi.lib VIs with the main.exe. I did not yet use LV 8 for this, bit LV 7.0.
@tle wrote:I am using LabVIEW 8 and am building an application that will use a "plugin" architecture. There will be a main program built into an executable that calls sub vi's that are in llb's. Some vi's in the llb's will call DAQmx functions, others will do calculations, etc. Some math functions will be done in the main program too.
The problem I am trying to address is how to deal with vi.lib vi's that are used in the plugin llb vi's and the main program. For example, I use Mean.vi in one of the plugin vi's as well as in the main program. Where should Mean.vi be stored? A name collision occurs if it is in more than one location (i.e. in a plugin llb and the main program executable). This can get very complicated if many vi.lib vi's are used in the plugin llb's and the main program executable. How can I distribute vi.lib vi's that are required for my application to run? The application builder is fine for simple distributions but breaking up the application into several modules (llb's) that have functions (vi's) like a dll has some great advantages.
As side issue, does anyone know of a way to assign a version number of a llb file that is visible from its properties window in Windows?
05-01-2006 02:43 PM
05-02-2006 05:46 PM
You might want to install the latest patch for LabVIEW (8.0.1) (if you haven't already) as I know that it has fixed the error 1003 issue when dynamically calling from an executable subVIs that contain vi.lib VIs. In this sense, the patch to restores LabVIEW 8.0 back to the way it functioned in LabVIEW 7.1 from a plug-in architecture perspective. Also be aware of the caveats mentioned in this KB.
Kind Regards,
05-02-2006 06:09 PM
Thanks for the response. I have already applied the LabVIEW 8.0.1 update and mass compiled. The problem I am having is similar to that described in the knowledge base but not the same.
I have a vi in my plugin llb that calls mean.vi, which is part of vi.lib (now in a locked project library in LabVIEW 8). If my main application, which has been built into an exe does not call mean.vi, the plugin vi works correctly. If I place mean.vi on the diagram of the main application and re-build it into an exe, the plugin vi fails with a "1003" error.
The vi.lib vi's are being found. The problem occurs when the executable contains a vi.lib vi that is also used in a plugin vi.
05-02-2006 09:53 PM - edited 05-02-2006 09:53 PM
Hi TLE,
The attached VI simply opens a VIs Front Panel. I check for errors after a dynamic call, and run this if there's an error. By opening the FP of a VI one can click on the broken-arrow and get valuable error detail (even in a run-time environment.)
Cheers.
Message Edited by Dynamik on 05-02-2006 09:54 PM
05-04-2006 12:56 PM
When I open the vi in runtime, it comes up with a broken arrow. When I click on the broken arrow I get the attached error message.
05-04-2006 07:25 PM
LOL! ... well that wasn't much help. I found this on error -2002220 - does it sound familier? Perhaps a reference to an undefined signal (undefined on the target machine.)
FYI: When the problem is missing type-defs, or DLLs, it will list them - which is very nice.