Instr.lib path change in executable

Hello,
generated and executable using Labview 2010. It actually run fine on development computer.
However, when running executable on other plaltform, the path for instr.lib changes to C:\instr.lib.
The project only contains a packed library and the start up vi which calls VIs from packed library.
How can I solve this issue?
Ariscrate!

Aristocrate wrote:
 Is there somthing to pay attention to when building executable that calls VIs dynamically?
You just have to be careful about where your VIs actually are.  Using relative paths are typically the way to go.  It is best if you can use relative paths based on the Application Directory, which points either to the EXE or the project file.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines

Similar Messages

  • Path changed in Executable, screenshot impossible

    Hello everybody,
    I have a program, which save a screenhot of the current VI. If I create a executable the "save a screenhot of the current VI" doesn't work.
    Maybe there is a problem with the file directory? I attempted it with the File constant: current vi path, application directory and default directory, but without success.
    If anywhere a simple example or anybody have some links?
    many thanks in advance
    zäpfle 
    Solved!
    Go to Solution.

    I could solve the question, see the attachment.
     zäpfle
    Attachments:
    MAIN_V2.vi ‏14 KB

  • How to package instrument driver in the user.lib or instr.lib directory

    Hey guys,
    I currently am using bunch of instrument drivers in my project.
    In the VI form it works fine, but I noticed that once converted to an executable,
    there are errors regarding the DLL that the drivers are calling.
    Apparently the driver VI check if its being called in an VI or executable based on the current directory.
    I dont think this is good/correct programming to begin with... but anyways since this driver is
    saved in the instr.lib directory of LabVIEW, when I call it from the executable the default path becomes
    XXX.exe/1abvi3w/instr.lib/.../.../VI above.vi
    I saw this post  which talks about how vi's in instr.lib and user.lib will get the path 1abvi3w in an executable but never talked about how to deal with it.
    so my question is can i solve this problem smoothly without copying the entire driver.lvlib into my project and
    editing the VI above? i am fine with creating wrappers for driver vi's but would to like to avoid editing the driver vi's themselves.

    doradorachan wrote:
    I dont think this is good/correct programming to begin with...
    I don't disagree, but there is a reason this code was written like that (you might note that it doesn't actually work) - before 2009, EXEs were built as flat directory, so stripping twice would bring you to the folder. Because of the addition of libraries, where different files have different names, this was no longer possible, so 2009 builds the EXE as a zipped hierarchy of folders, which is why the check for a folder succeeds even inside the EXE.
    There are a couple of things you can do:
    Replace the VI path with the Application Directory primitive. This is designed to function differently in an EXE. Understandably, you don't want to do that.
    Check the 8.x checkbox in the advanced page of the build settings. This will make the code work correctly, but if there's LVOOP code with VIs of the same name anywhere, it will create extra folders that you need to move around with the EXE.
    Add the driver to the project (just the lvproj, don't actually copy the files) and then set an explicit destination in the build for its VIs as an LLB in the data folder. This will place the driver VIs in an wLLB, which is external to the EXE and should then strip correctly. I can't say I have much experience with this, but I'm assuming it should also work with code that was originally in user.lib. This is probably the cleanest solution in terms of number of files because you only have one extra file.
    Try to take over the world!

  • Specifying VI modules in instr.lib on 64 bit Windows 7

    I am looking for some suggestions as to how best to handle a situation I am having with specifying a VI module step that is in the instr.lib directory of LabVIEW.  I am developing from two different machines depending on the company facility that I am at.  One computer is a Windows 7 64bit machine the other is 32 bit.  The situation is that the location of the instr.lib is not the same between a 64 bit and a 32 bit windows 7 computer (the 64 bit installs NI software in the "program file (x86)").  This causes all of the paths for my modules on one computer to not be found on the other.
    Anyone else run into this issue and have a solution?

    I think I have solved my own issue...
    Here is what I do.  Specify the module to be absolute to start and then change the path to be relitve by removing the "C:\Program Files (x86)\National Instruments" and replacing it with ".." resutling in a path similar to "..\LabVIEW 2010\instr.lib\<driver>\<filename>" .  Since the TestStand directory is already in the search paths it will find the file on either machine as long as it is installed.

  • Application builder adds additional select instr.lib folders

    Hi,
    When I build my application, the Application Builder decides that it should include additional directories instead of the default files (data directory, .aliases, .exe, and .ini files). The additional directories include files that are named the same in various instr.lib's but are in different libraries, i.e. Close.vi or Initialize.vi. In my project explorer are there no unresolved dependancies. Does anyone know why this may be happening?
    I just marked out the company name in blue if you were wondering.
    Solved!
    Go to Solution.

    What version of LabVIEW are you using?  If you are using 2009 or above, there is an option to use the 8.X format for the executable.  It is one of the advanced options in the build specification.  You do NOT want to do that.  In the 8.X format, the VIs are saved in the executable as a flat directory.  This means that any VI that was named the same, regardless of library association, would conflict.  This would cause those libraries to be saved outside of the executable.
    If you are using the newer format, the executable keeps a directory hierarchy, just like a zip file.  So you won't have the name conflicts in that instance.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Installing third party drivers not in instr.lib

    Hi, 
    (LabVIEW 2013 SP1)
    We are using LabVIEW to develop on multiple stations and we use source code control application to control the version and compatibility of the VI's.
    We are using many third party (not NI) instruments and we "install" their drivers at - 
    C:\Program Files (x86)\National Instruments\LabVIEW 2013\instr.lib
    This creates some difficulties since this folder is external with respect to the SCC application so this resource is not version controlled, whether someone downloads a different version or one add/changes another feature.
    It will be easier also to copy the development folder from one computer to the other.
    1. Is it possible to change the default behavior of LabVIEW Environment to load drivers to the Intrument Drivers palette? 
    2. What do you recommend ?
    Amitai.

    There are a few options here for you.
    1. Just put the drivers in your project folder and edit them to look at their new location instead of instr.lib.  That should be just a matter of loading them and resolving the conflicts.
    2. Use VIPM to make packages of the drivers and then everybody can install the packages.  This way they know what version is getting installed.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Wrong JRE Runtime Lib Path on Win2K--Admin Server Won't Start

    Running Sun One Web Server 6.0 SP6 on a Windows 2000 server, I inadvertently entered a typo in the iPlanet Administration Server's Global Settings, "Configure JRE/JDK Paths" link.
    In the "JRE Runtime Lib Path" field I typed "jjk1.3.1_03" instead of "jdk1.3.1_03". Now the Sun One web server won't start, so I can't go into the Administrative Server to fix the Jre Runtime Lib Path. I havent' been able to find any file where I can change that erroneous setting either. Is it a Registry entry?
    I also tried adding the correct JRE Runtime Lib Path at the end of the Windows PATH environment variable on the server, but that didn't help.

    Yes we checked the Registry settings and fixed the typo in the path associated with the key NSES_JRE_RUNTIME_LIBPATH. That should have fixed the problem, but the Sun One web server still wouldn't start.
    Moved to plan B and removed then reinstalled the Sun One web server. Now it starts and all is well.
    Thanks for helping everyone. This also raised the issue for us of whether or not we are entitled to individual support from Sun since we paid for the Sun One web server. According to the web site, the answer is NO - unless we pay $3,000 for a support contract. Other vendors who recommended using Sun One with their products say YES. We're still tracking that down.

  • Hpe364xa instr lib can't work

    I am trying to use hpe364xa d/l from this site on my E3640A powersupply from
    Agilent using Labview 5.1.1
    keep giving me the error message :
    "block diagram error
    call library function: function not found in library"
    the function it is trying to call is :C:\Program Files\National Instruments\LabVIEW\INSTR.LIB\hpe364xa\hpe364xa.llb\hpe364xa
    Initialize With Options.vi\hpe364xa_32.dll
    does anybody knows what's wrong? is it with the dll file?
    thanks

    Hi,
    This is an IVI driver. This problem seems to be that the VI Call Library function is looking in the wrong place for the dll.
    Usually they are installed in the VXIpnp folder. and you should find the dll in the c:\VXIpnp\Bin folder.
    Just click on the call library function and select the configure. Then change the folder location for the dll.
    Or you could try unstalling the driver and try reistalling it again.
    Hope this helps.
    Regards
    Ray Farmer

  • In function palette-instrument I/O i have lost library:INSTR LIB

    when i clik on instrument I/O in the function palette, inside i have this library:GPIB,SERIAL,VISA,I/O COMPATIBILIY but i lost library INSTR LIB.
    In directory c:\programmi\national instrument\labview6\instr lib there are all my driver instrument
    haw can i view this driver in function palette\instrumet i/O ?

    Here is a great document that has instructions how to add a palette.
    How Do I Create a Custom Sub-Palette in the Functions Palette in LabVIEW 6i and Above?
    If this doesn't work, try reinstalling LabVIEW.
    Zvezdana S.

  • Instr.lib or user.lib?

    Hi,
    I want to publish some professional LV drivers for our hardware.
    Intuitively, I supposed that the right installation folder would be "instr.lib".
    Nevertheless, the NI Driver and VI Library Development Guidelines" (http://zone.ni.com/devzone/cda/tut/p/id/6395)
    explicitely says that the driver should be in "user.lib".
    What is then the common practice for commercial drivers?
    Then I am also wondering: what is the purpose of instr.lib if all drivers and user VIs should be in user.lib???
    Thanks

    I think the statement about placing drivers in the user.lib folder is a bit confusing since the Instrument Driver Guidelines says to place the instrument driver in instr.lib. If you submit your driver to NI for certification and it ends up getting placed on the instrument driver network, the instructions there will tell you to unzip it to instr.lib. I can understand placing any custom tool in the user.lib but to me, it just doesn't make any sense to place instrument drivers in any location other than instr.lib.

  • CIM.bat giving error that weblogic lib path not found

    I am using atg 9.1 and weblogic 10.3.2. Installed both s/w and started weblogic server. I am using cim.bat to configure and I am stuck at a point where it asks for the app server I am using and I selected 'Weblogic' and when it asked for the path..I gave the correct path where weblogic is installed...but it says Weblogic lib path not found...even though I can see the server/lib directory...could you please help ?

    Yes, I did that...my weblogic is installed in c:\Oracle\Middleware\wlserver_10.3.2 and CIM gives a message that [c:/Oracle/Middleware/wlserver_10.3.2/server/lib] weblogic lib path not found
    Also I see c:\Oracle\Middleware\wlserver_10.3.2\server\lib directory and all the required weblogic files available in that directory.

  • Exception: no ocijdbc9.dll in java.lib.path

    I have oracle9i Minimal Edition for Win2000 installed, I tried to run my sample java code to test ocijdbc driver.
    The exception has been thrown like this:
    no ocijdbc9.dll in java.lib.path
    I've tried to search this file but not found.
    I don't know where I can download this file?
    I succeed with thin driver with my sample code.
    Anyway, I want to use oci.
    Please help.

    Hallo,
    the Lib is in ORACLE_HOME/bin and not in the lib-Directory like the documentation says.
    Hope i can help you.
    Michael

  • Build installer for lvlib for LabVIEW instr.lib folder

    Dear.
    It might be trivial.
    I build an .lvlib.
    What I want now is to make an Istaller.
    The installer should install the vilib into the instr driver directory of the current LabVIEW Version.
    I'm using LV 2011.
    The installer always wants to install the files into 'Program Files' folder.
    So the question is:
    How do I have to proceed?
    I want the complete vi and controls hirarchy including dir.mnu files to be installed into the instr.lib folder.
    Regards
    Martin

    This is a prime canidate for VIPM.  You can use the free version to build the package.  The best part of using VIPM is that you can "install" it on every version of LabVIEW you have installed (that is it compatable with, of course).
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Shared instr.lib

    I am using LV8 and am trying to share custom instrument drivers across several testers. If I place the driver directories in instr.lib on the C drive, all of the sub-menus and VI driver picks show up fine. When I move the instrument directory to the networked drive and add it to the palette, the top level of the driver and any .mnu sub-menus show up but the VI's are all question marks. When I "Synchronize with Directory", a 'paletteMenu' sub-menu appears for each .llb in the directory which contains all the VI's. I do not want this flat structure but rather the original directory structure as seen on the C drive. I suspect the VI's are listed in the .mnu using absolute references. I can go into each sub-directory in the palettes and enter the VI's but I have 10 instruments with well over 100 VI's. I would like to avoid wasting a day doing this. I am also concerned about adding drivers in the future to the network driver directory. If someone else has to do this they will probably come hunting for my head!
    Does anyone know kow to move a local instrument driver to a networked drive without manually entering all the VI's?
    Thanks,
    Bob Albern

    Hey Bob! 
    I have a couple of suggestions that may work for this issue.  Are you mapping the network drive to your hard drive?  This might be a way to share the instr.lib between multiple machines.  I think the easiest method would be to include an EXE that installs the VIs to the correct location.  This would be a fairly simple VI that you could use and have each person that needs the drivers to just run the EXE and it could automatically install the VIs. 
    Would these be feasable solutions?  Repost if you want more info or these wouldn't work.
    Andy F.
    National Instruments

  • SCC again (Instr.lib / User.lib)

    Hi,
    I want to control my instr.lib and user.lib directory with SCC.
    Should I create a top-level VI for each directory?
    Should I create a "Top-" project-group including both directories to realize
    cross-references?
    How do I install additionally hardware-driver with a complex
    directory-structure?
    I'm still looking for a extensive "How to"-document for SCC (the document
    http://digital.ni.com/manuals.nsf/webAdvsearch/57C​C60D27B73A6FB8625665E00635
    940?OpenDocument
    is not deep enough!)
    Mareike

    My suggestion would be to specify a local working directory for SCC that is not under the main LabVIEW directory. So what to do if you want your VI's under the user.lib or instr.lib sub directories? My suggestion would be to make a utility VI that would copy your VI's from the local working SCC directory to one of these sub directories.
    Chris_Mitchell
    Product Development Engineer
    Certified LabVIEW Architect

Maybe you are looking for