Build Labview Application which loads functions dynamically

I am not sure if this is possible for executables, but it works pretty well in the LabVIEW development mode.
I have a LabVIEW program which calls some functions (sub-functions) dynamically. In the develop mode, the sub-functions are in separate *.llb files. When a subfunction is selected from the menu of the main LabVEIW program, the main application searches a particular location/directory for a particular *.llb file; if the *.llb is found, it loads the vi and runs it, if not, it tells the user that the function is not available. The advantage of doing this is that I can add/remove/modify these sub-functions simply by puting in or taking out the *.llb file from that directory without causing any problem on the main program.
Would it be possible to do the same if I buid an LabVIEW executable application (I mean build/compile the main application first, and then add/remove functions by putting/removing some files in a directory)? If yes, then I can distribute new functions to users without having to re-compile the whole thing.
Thanks.
Ian

Hello Andrew,
When Using LOader method, there are a few things to take care of. It is not so terrible when you know what and why. Consider this If you change your executable, You have to rebuild and then you realize there was a small spelling mistake or a control was not aligned. Doing a double check is sometimes as important as good programming.
1. Path Issues - These you will have whether you build executable or release it as a library. This happens if you use relative path.
2. Use of native labview Vi's in your code - When the code changes, You want to distribute the new LLB. Well Use Save with Options and Choose "Application Distribution" Select "Entire Hierarchy", "Include Vi.lib Files" And "Runtime Menu" and "External Routines" If you want your App protected. Click Remove Diagrams. Again Make sure you don't lose your Original file if you choose this. All this saves the whole App as LLB.
Then your Loader has to call your Main Vi dynamically. How difficult is the path Issue to Call One Main Vi in a Vi Library. There is no Licensing Issue here as LV itself gives you this option.
I have used this method for a couple of 200 Vis or more Applications and constantly updated by changing the llb file without any hassle.
Good Luck!
Mache

Similar Messages

  • How to build a wsdl which can cater dynamically to number of attachments

    We have a WebService client that calls a Webservice on the Server.
    When the client calls the webservice , it passes the SOAP message(Header,Body & MIME attachments)and these attachments vary in number based on different business requirements.
    We know how to build WSDL for server with static number of attachments,but no clue on how to build a wsdl which can cater dynamically to number of attachments comming from client request.
    - thanks in advance

    Hello,
    We may have multiple approaches here depending of :
    - which version of the product you are using
    - what are your clients in term of stack, and API they are willing to use
    - which encoding did you use for your WS (swa, swaRef or dime)
    So for my answer I am documenting how to do it on OracleAS 10gR3 (10.1.3), using swaRef approach.
    The easiest way is to exchange array of binary data and describle that in the WSDL, so in my case the WSDL element that is used will look like that:
    <element name="filesResponseElement">
    <complexType>
    <sequence>
    <element name="result" type="ns1:swaRef" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    </complexType>
    </element>
    This will generate from the Java code an array of AttachmentPart[].
    Regards
    Tugdual Grall

  • Error 1073 when building LabVIEW app which calls LabVIEW dll

    I am trying to use application builder to build an application that calls a dll created in LabVIEW. I get an error referencing a vi within the dll (Parse Stored String(multibyte).vi) saying that "This property is writable or this method is available only when the VI is in edit mode." The only option is to Continue which cancels the build. I had sucessfully built this application prior to including vis that call the dll and the program runs fine in the development environment.
    Do you have any idea what is causing this and what I cam do about it?

    I have found a temporary workaround in which I created a dummy dll that removed all functionality from exported vis but had the same name and function signatures. I then built the application using this dummy dll. Once complete, I replaced the dummy dll with the real dll.
    This is not a satisfactory work around because we have to build and maintain two dlls. Also, I'm not sure we can do the same trick when creating the installer with application builder. So, I'd still appreciate any help you can give.

  • How can I build an application that calls functions in a dll if the associated hardware is not present?

    I am trying to build an application that use the "Call Library Function" node to call functions in a dll.
    The dll was provided by a third-party and includes functions to drive an I2C communication board.
    The problem I have is that the dll does not not properly because the hardware is not present.
    Therefore when I load the VI a broken arrow is displayed and when I am not able to build the application.
    I will not be running the application on the PC where I build the application, therefore I want to be able to build the application on a remote PC that has not all the hardware installed. Once the application will be build it will be installed on the target PC that has all the hardware.
    How can I make the application builder to build the application event if the dll is not properly loaded? (the dll will be properly loaded on the target PC)
    I want to do this on LabView 5.1.1, any ideas?

    Some .dlls don't try to attach to the driver when loaded.
    I've worked with both and unfortuately, I've not figured out a way around this problem.
    You could possibly use the Conditional Disable structure around the dll calls so they would not be loaded unless you're in the runtime engine. But i've not tried this so I don't know for sure if it's possible.
    Anyone??
    Ed
    Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
    Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.

  • When Building an Application, which .icd file gets used on the deployment machine?

    Hello all,
    I am building an application that needs to support multiple configurations for multiple cameras. I currently have a development machine with everything you would expect to be installed, and a deployment machine that does not have LabVIEW installed, but does have LabVIEW run-time, appropriate drivers and MAX.
    My question is: When I build an application, I would like to be able to give a particular end user their own .icd file which the built application will recognize on their own machine. Then the .icd parameters can be tailored to their application. Is this possible?
    I had hoped that this would just be the case, however when I compiled an application and tried to run it on the deployment machine it was obvious that the built application retained the .icd settings on the development machine and ignored the .icd settings on the deployment machine. Perhaps it has something to do with how I am compiling? Any additional info would be awesome.
    Thanks everyone for your time!

    Cole,
    The easiest thing to do would be to manually replace the default .icd files with your configured .icd files at the directories specified in the following knowledge base.
    Where Do I Place My Camera File Once I Download It?
    LabVIEW won't copy the .icd configuration automatically because it is a configuration file for the IMAQ driver which is platform independent.  Another option would be to create VI that runs at installation or application run time that programmatically configures the .icd file.  You can add the .icd file to your project and copy the attributes to the camera file that exists on the deployed machine or replace it entirely.
    Regards,
    Isaac S.
    Applications Engineer
    National Instruments

  • Error 6 while Building Labview Application OSX

    Hello everyone,
    I have an application I am trying to compile on OSX10.8 using Labview 2012. I built the application fine yesterday, however, after some work today I don't seem to be able to replicate the feat.
    Everytime I try to build I receive the following error:
    "Error copying files. Source: Macintosh HD:Applications:National Instruments:LabVIEW 2012:resource:lvanlys.framework Destination: Macintosh HD:tNIAB:appName.appupport:lvanlys.framework Delete in Copy From Folder To Folder.vi->Librarian Copy.vi->AB_Destination.lvclass:Copy_File.vi->AB_Source.lvclass:Copy_SourceItem.vi->AB_Build.lvclass:Copy_Files.vi->AB_Application.lvclass:Copy_Files.vi->AB_EXE.lvclass:Copy_Files.vi->AB_Build.lvclass:Build.vi->AB_Application.lvclass:Build.vi->AB_EXE.lvclass:Build.vi->AB_Build.lvclass:Build_from_Wizard.vi->AB_UI_Frmwk_Build.lvclass:Build.vi->AB_UI_FRAMEWORK.vi->AB_Item_OnDoProperties.vi->AB_Item_OnDoProperties.vi.ProxyCaller<APPEND> Macintosh HD:tNIAB:appName.appupport:lvanlys.framework"
    Anyone have any suggestions?

    Nothing that should matter. I updated some logic in the VIs and added some OS dependent conditional disable structures. The project file has remained the same. 
    I think it might be a permissions error. Before this particular error, it randomly started giving me some errors when I tried to save things saying I didn't have permission to save certain things. So I attempted to fix all the permission mismatches with some good old chmod. And then it started giving this error. 
    It also does not appear to help to revert the code to the state it was in when it was first built. This leads me to beleive it is not something to do with the source code.

  • Mac OS X build Windows Application

    Hi there,
    hopefully I'v posed in the right board here.
    Actual, I am totally new to LabView. Since last month I made some LabView VIs on Mac OS X in an universitary project to automate a chemical process using two chemical devices. One submits data and the other one gets data written.
    Now, the main functionality is done. All needed data is read and in relation to that data, the other device gets commands how to react...but as it seems on Mac OS X only. But the final product should run on Windows.
    We took the Mac OS X Labview project and built an application (.exe) on a Windows LabView Professional. But when started no data is submitted from device no. 1 which means device no. 2 can't be controlled correctly.
    Using a simple LabView application which just reads the data from device no. 1 works well.
    When building a Mac OS X application (.app) all works well again.
    What can cause this issue and what can I do to prevent that?
    Thanks a lot!
    Best wishes from Hamburg, Germany
    Volker 

    smercurio_fc wrote:
    [...]just a guessing game.
    So it's guessing time
    Well, one question, Volker:
    You said building the exe on Windows and executing the exe does not work correctly. What happens if you run the project (sources) itself in Windows?
    But please follow smercurios hint and give us some more infos perharps some files to look into....
    Norbert 
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Labview application crash

    Hi
    I have a labview application which generates an Access violation (0xc0000005).
    Unfortunately it appears to crash at different points in the program execution.
    The program is running an ESS task and has usually run serveral temperature cycle before it crashes. Other times it runs fine.
    Looking at task manager, its not running out of memory.
    Its not accessing any network location. 
    Everything is contained within the EXE except for some VIs which are called dynamically and these VIs are contained in a LabVIEW packed library and installed on the same drive as the application.
    I was hoping the log file would provide some useful information that would point to the problem
    see attached
    #Date: 07 Aug 2015 15:56:41
    #OSName: Microsoft Windows XP Service Pack 3
    #OSVers: 5.1
    #OSBuild: 2600
    #AppName: ???_Test_Suite <<<<<removed filename details
    #Version: 11.0.1f1 32-bit
    #AppKind: AppLib
    #AppModDate: 07/08/2015 14:59 GMT
    #LabVIEW Base Address: 0x30000000
    07/08/2015 16:56:23.134
    Crash 0x0: Crash caught by NIER
    File Unknown(0) : Crash: Crash caught by NIER
    minidump id: 1b0d01ab-3630-4f28-957d-758aaf53e606
    &#25;ExceptionCode: 0xC0000005§&#7;N
    0x3072D954 - lvrt <unknown> + 0
    0x3072DD08 - lvrt <unknown> + 0
    0x7C37FDB4 - MSVCR71 <unknown> + 0
    0x7C843E82 - kernel32 <unknown> + 0
    0x00000000 - ???_Test_Suite <unknown> + 0  <<<<<removed filename details
    *** Dumping Bread Crumb Stack ***
    *** LabVIEW Base Address: 0x30000000 ***
    #** DisposeInstrument: "C:\####\common\Instruments.lvlibp\Public\cal 8722.vi\9"   <<<<<removed path details
    #** VILinkObjRemoveCore: "C:\####\common\Instruments.lvlibp\Public\cal 8722.vi\9"  <<<<<removed path details
    *** End Dump ***
    The reference to the lvlibp vi in the lvlog file make no sense as 'cal 8722.vi' wouldn't have been loaded during the ESS routines.
    Are there any tools available that would make the dmp file a bit more readable?
    Any sensable suggests welcome.
    Regards
    Ray Farmer
     

    It seems to me that the issue is coming from some sort of memory violation. It's possible that a certain process is running out of virtual memory. Have you also tried checking the cal 8722.vi to ensure that it works correctly? I know that it's not being called but if it is mentioned in the error report then it's definitely worth making sure it works.
    Additionally, make sure all of your references are being closed properly. It could be that if the program is (or was) stopped suddenly, perhaps using the abort button instead o the stop button, that the references are still open and that is causign the issue.
    What does your program look like? If you attach the code I may be able to more easily determine the cause of the error.
    Regards,

  • How to build labview global variable into dll?And how to use it in vc++ program?

    Hi!
       I want to build labview application into dll and use vc++ to call it.The labview program is a little complex,for it has many interface to vc++ and has while loop in it.When I use vc++ to call it,I must use vc++ to do other things.That is to say,vc++ creates a new thread to provide for the labview dll to run.the vc main thread goes on to other things.But the vc++ main thread must communicate with the labview dll by setting its inputs' parameters and get the results of running labview dll.Can you advise me how to realize it?
       I think global variable of labview could be useful when realizing the communication betweeb vc thread and labview dll.So I want to ask whether the labview global variable could also be built into dll and use it.Could you please tell me how to realize my idea?
       Thank you!

    [email protected] wrote:
    Hi!
    I want to build labview application into dll and use vc++ to call
    it.The labview program is a little complex,for it has many interface to
    vc++ and has while loop in it.When I use vc++ to call it,I must use
    vc++ to do other things.That is to say,vc++ creates a new thread to
    provide for the labview dll to run.the vc main thread goes on to other
    things.But the vc++ main thread must communicate with the labview dll
    by setting its inputs' parameters and get the results of running
    labview dll.Can you advise me how to realize it?
       I
    think global variable of labview could be useful when realizing the
    communication betweeb vc thread and labview dll.So I want to ask
    whether the labview global variable could also be built into dll and
    use it.Could you please tell me how to realize my idea?
       Thank you!
    You
    can't access LabVIEW globals directly from a caller to the LabVIEW DLL.
    However there is no problem in providing specific accessor VI functions
    to that global and export them as additional functions from the DLL.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • [advance question] loading a swf in adobe Air, which loads an image with "componentloader"

    Good evening all,
    I think this is a complex issue.
    I have adobe air application which loads a SWF I made.
    Inside this SWF I have used the "component LOADER" to load
    something with "ContentPath=image.jpg" for example.
    But the swf loaded in the Adobe air works, but does not load
    the "ContentPath image"...
    (it does load and display it when it this swf is run outside
    adobe Air)
    I need it to be dynamic like this, so if eventually I Include
    it in the package it won't help much...
    I just intend to replace an image background from this loaded
    swf file!
    Thanks!
    Edit:
    At this time of the editing, I fear and realize
    something....I have been using Actionscript2 for the .SWF file,
    could it be why it does not works???
    If its problematic, is there a simple way like telling it to
    read actionscript2, rather than transforming everything??
    edit2:
    I found this on the official AIR FAQ:
    Will Flash version 8 and below SWF files run in Adobe AIR?
    Yes. However, the Adobe AIR APIs are only exposed to Flash
    content via ActionScript 3 / AVM2, and thus Flash 8 / AVM1 SWFs
    will be able to run, but they will not have direct access to the
    Adobe AIR APIs.
    source:
    source
    faq Adobe
    it seems it should works!!??
    Edit3:
    nope I confirm at least some code made in Actionscript2
    works.
    I am sure this code needed to be changed for working in
    actionscript3, so "actionscript2" code works in Adobe Air.
    The problem of not loading my image must come from something
    else!!??

    Good Morning all!
    Hilarious....
    I tried so much to think maybe Adobe Air does not like a SWF
    using actionscript2, or it does not load any "external image from a
    swf", etc...
    None of that!
    I just in FLASH in the ComponentLoader....I did put simply
    the ContentPath at "myimage.jpg"....
    Of course I had to use the absolute path like
    "c:\\myfolder\\myimage.jpg"
    Of course aswell it works now!!!

  • Cannot copy and paste from application which is using jinitiator 1.1.8.16

    Dear all,
    I am using oracle application which loads in the browser using jinitiator 1.1.8.16, my browser is IE 6.0, Application is working fine but the problem is that I cannot do the operations like copy and paste, except this application copy & paste is working on entire system, can anybody please help me solve this problem.
    Thanks in Advance for who is going to help me to solve this problem.
    Regards,
    Phani Kumar .B

    Phani,
    Jinitiator has nothing to do with JDeveloper. You may wish to try the Forms Forum.
    John

  • LabVIEW application run on Windows XP Embedded

    I'm doing a Embedded system based on Windows XP Embedded operating system.I want to make a LabVIEW applications which can run on it.I see a lot of paper that show the LabVIEW does not support Windows XP Embedded.I want to know whether the official has already solved this problem?Or someone has done the same thing successful?

    Who is the official? NI?  If it isn't supported, NI is unlikely to be trying to solve the issue as we are a bit beyond XP.  You'd need to find unsupported methods to hack it a bit.  I'm not sure you'll enjoy this process

  • Error message when building an application for Labview PDA

    When using LabView PDA module to build an application for a PDA target, I receive the following message: "Error building executable. Unable to create file". Why is this happening?
    When looking at the error log, it reads "The system cannot find the file specified."
    This happens even when looking at one of the Labview PDA example VI's, so it is not a result of the VI containing functions of features not supported by Labview PDA.
    When installing Labview PDA, I installed files as follows, and in this order:
    (i) Labview 7.1 (installed previously)
    (ii) Microsoft eMbedded Visual C++ 4.0
    (iii) Microsoft eMbedded Visual C++ 4.0 SP 3.0
    (iv) Microsoft SDK for Windows Mobile 2003-based Pocket PCs
    (v) Microsoft ActiveSync 3.8
    (vi) NI Labview 7.1 PDA module for PocketPC
    (vii) DAQmx Base 1.0 for PDA or later
    Any ideas?

    Did you attempt to add the _wordsub.llb and _excelsub.llb files to the application as support files?  I believe in LabVIEW 8.0 instead of adding the entire LLBs you should just add the _Word Dynamic VIs.vi and _Excel Dynamic VIs.vi as dynamic VIs.  I think I've seen a similar post on the discussion forums in the past that recommended this.
    If this suggestion doesn't help, please reply, and attach a simple VI and .lvproj file demonstrating the problem so I can investigate further.
    Good luck,
    -D
    Darren Nattinger, CLA
    LabVIEW Artisan and Nugget Penman

  • Open vi reference problems in labview 7 after building an application

    I have a vi with an Open VI Reference vi in it.
    This works fine. But when I build an application of it and run the vi it gives problems.
    I get an Open VI Reference error. Why?

    If you have strict typedefs for the dynamic loaded VIs you need to include the line "BldApp.RemovePolyVIsandTypedefs=False" into your LV ini file. See this discussion.
    Waldemar
    Waldemar
    Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
    Don't forget to give Kudos to good answers and/or questions

  • Application builder exe does not load excel

    I have used application property node and invoke node to cerate a set of VIs that read and write data to an Excel sperad sheet.  This works fine in when running in LabVIEW, however when I run myApp.exe as build from application builder, the data does not get logged to Excel.  The file dialog appears to  open the XL Spreadsheet but not data gets logged nor is any error reported?
    What is going on?   All the VI are in the same project folder?  Is there some additional addon run-time the must be installed on the target machine?  I am uisng LabVIEW 2012 on the development station with Win7 Pro and Office 2010 on both the devleopment station and the target system.  Is there one document that describes using Application Builder?   It was not clear that I needed both LabVIEW and VISA run-time engines to get my application.exe to run on the target.  Is there something simialr I must do to get Office to work as well? 

    I was finally able to track this back through by starting from scratch and received an error code, which led me to this post:
    https://forums.ni.com/t5/LabVIEW/Error-2147319779-Excel-ActiveX-and-Broken-LabVIEW-Icon/td-p/2354776
    Deleting the "1.7" items solved the problem.

Maybe you are looking for