orko Posted May 1, 2009 Report Share Posted May 1, 2009 Okay, bringing This Thread out again... sorry AQ In the app builder, anyone that has built an OOP based EXE or DLL has experienced the "conflicting name" warning, and seen the suggestion to rename the files in the build process as a workaround. Well, the app builder actually lets you do this with class members...which totally breaks inheritance. I'll post an example later, but basically: 1) Create three classes; a parent and two children, with a common method "A.vi" with dynamic class terminals and a single numeric output 2) Create a test.vi that uses a numeric input to a case structure to select which object (parent, child1, or child2) to pass into the A.VI method, and an output to tell which method was called 3) Build this test.vi into a DLL with the test.vi as it's exported function (numeric input, numeric output) 4) You'll of course notice that this creates subfolders for the conflicting name A.vi 5) Test the DLL, you should get the desired output for the corresponding input you set up in the test.VI 6) Now, re-open the DLL build spec and tell the app builder to rename the A.vi method in each class to "<className>_A.vi" (yes, it lets you do this and hence the bug) 7) Build this DLL and notice that no subfolders are created (if you look into this closer, you'll find that it actually is creating VIs with names "<className>_A.vi" like you told it to) 8) Test the DLL, you'll notice that no matter what you feed into the input, you'll always get the parent method output NOTE: I actually considered hard before I posted this as a "Bug", since I would have loved it if the renaming actually worked... but I understand with the current way LabVIEW handles classes why it "shouldn't" allow me to rename class members in the build. QUOTE (orko @ Apr 29 2009, 08:15 PM) I'll post an example later Here it is: http://lavag.org/old_files/post-3266-1241062428.zip'>Download File:post-3266-1241062428.zip (LV 8.6.1) 1) Unzip and open the project 2) Build All 3) Run both test VIs. One uses the DLL built without renaming the methods, the other uses the one with renaming. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.