LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
Andi_S

Build shared library (DLL) - Define VI prototype: Allow content of cluster (type def) to be changed without resetting VI prototype.

Status: Declined

Any idea that has received less than 7 kudos within 7 years after posting will be automatically declined.

Since I'm working with LV-DLLs there is a very very annoying Bug. I just made my first tries in LV 2012 (up to now I'm using LV 2009) and I recognized that the bug is still there but an information/warning dialog opens now when it takes effect. With other words: The bug became a feature ;-( So it's time to make a suggestion for changing in the LV behaviour.

 

Here are the steps you have to take to reproduce the problem:

1) create a new, empty LV project

 

2) first create a cluster, store it as type def and add the type def to the project

typedef.jpg 

 

3) create a new VI (called test) that uses this cluster as output (input will work, too). Add the VI to the project, too.

 2.jpg

 

4. Create a DLL-Spec with this VI as exported function (sorry, I’m using a German LV):

 3.jpg

 

5. Usually the default prototype is not the best. So we re-configure it like this.

4.jpg

Click to ok and store the project and all files.

 

 

6. Ok, last step: Building the DLL 🙂
 – Ups, we forgot to change the element “n” inside of the typedef-cluster to U16 (it’s still set to double).
But no problem – changing the typedef will correct the bug everywhere where the ctl is used.
Open the typedef, change and store it. Now re-build the bug-free DLL - finished! .. or not? No, you're not. Because you changed the type def LabView has reset the hard configured prototype to default *grmpfl* Smiley Mad

 

Now you might say: “Hey, where is the problem, just re-configure it.”

Currently I have a single project which uses up to 25 DLLs created in LV. All are using the same data cluster typedef. Each DLL has approximately 10 exported VIs. This makes 250 prototypes I have to re-configure if there is just one little change within my cluster!!!

LV resets the prototype even if a VI-IO changes from “required” to “recommended” – a change that does not have any effect to the behaviour of the exported VI.

 

So NI, please change this “feature” to a real feature as soon as possible!

 

Meanwhile I have to go on using variant elements to send data to my DLLs and back.

 

 

Appended you'll find a very similar example. Don't forget to save the VI after you've changed the type def.

 

1 Comment
Darren
Proven Zealot
Status changed to: Declined

Any idea that has received less than 7 kudos within 7 years after posting will be automatically declined.