Creat a DLL from a set of VIs

Hello,
I've a board that cames with Labview VIs for each of its functions.
As I'd like to use it from CVI, I need a DLL.
NI support team gave me the procedure to make such a DLL, it works fine.
But, the create DLL can't be used by 2 application in same time, as it was possible with the old fashion driver on WindowsXP, delivered by the board supplier.
When I've an application launched using functions in the DLL, it is loaded and seems to be "privative" to this application: if an other one tries to load the DLL, there is an error frolm Labview wrapper.
Is there an option to make such DLL "reopenable" or "reentrant"?
Regards

The DLL is written by Lavview tool to encapsulate VI and get them reachable from CVI: the board supplier no loger delivers a C-compatible DLL, only Labview driver and C# / .net / Java... modules, that implies heavy changes in our application to manage. NI support suggested to make this way a DLL from the set of VI delivered by supplier.
In our case, on XP, the main application was using the board but it was possible in parallel to send commands from an other application.
You're right it may be a question of locking resources by DLL / VIs functions: I'd like to know it there is a specific otpin when creating the DLL to make it reentrant and possibly get double access.
 

Similar Messages

  • How to create a dll from vi in Labview 7.0 ?

    Hello,
    I want to create a dll from a vi in Labview 7.0.
    I've found the url: http://zone.ni.com/devzone/conceptd.nsf/webmain/003A3E6A5E9CCCEC8625691F0072B2C5
    explaining how to create DLLs from LabVIEW in Labview 6.0i but this method is not available in my Labview 7.0.
    How is it possible to create a dll from a vi or from vi's (stored in llb-files) ?
    With thanks,
             best regards,
                  Geert

    You can only create DLLs and Standalone Applications if you have LabVIEW professional or higher.
    If you only have LabVIEW Base of Full, you need to purchase the Application builder seperately. 
    (Check under "Deployment tools" in the LabVIEW comparison matrix. What level do you have?)
    Message Edited by altenbach on 10-18-2005 08:45 AM
    LabVIEW Champion . Do more with less code and in less time .

  • Create an area from a set of points

    How to create an area from a set of points ? I searched everywhere but could not find a better solution for it. Let�s say that I have a matrix that contains the points for a shape. I�ll need a way to connect the points near each other continuously to form the outline for the shape.
    Thanks fro any feedback.

    ... But I'll also need a way to connect
    those points in an order so that they'll form the
    path (edge) of the shape.Do you mean the Convex Hull [1] of a set of points?
    If so, you could find it by implementing a Graham Scan [2] algorithm and then calculating the area of the polygon [3].
    [1] http://mathworld.wolfram.com/ConvexHull.html
    [2] http://en.wikipedia.org/wiki/Graham_scan
    [3] http://mathworld.wolfram.com/PolygonArea.html

  • Can I create a dll from labview with more that one function name

    I know that when I create a dll from C and then call it in labview using the call library function node I can see the different functions on the configuration screen. Is there a way to create a dll in labview to have more than one function name? No matter how many functions happen in my VI it seems to build into a dll under the same function name requiring inputs for every function, can this be avoided somehow?
    Thanks,
    Dave

    Each function corresponds to a separate VI. When creating the dll, on the Source Files tab of the app builder, click the Add Exported VI for each VI that you want. SubVIs of a main are not automatically exported and will not be available as separate function calls.

  • Create XML file from internal table and vise a versa

    Hi Friends,
    I have requirement to create an XML string from internal table data and also read XML string data to internal table.
    Can anybody tell are there any Function Modules or methods existing for this?
    Thanks.
    Krishna Yerram.

    1. Write XSLT program. T.code XSLT . e.g. XSLT name "ZTRANS".
    2. Write ABAP program
    Which includes declaration of internal tables
    that you need "IT_DATA".
    Upload XML data to an internal table "IT_XML "
    use below statement to convert XML to internal table.
    Call transformation ZTRANS
    source XML IT_XML
    result IT_DATA.

  • How do I create package groups from a set of packages?

    Hello,
    Suppose I have a set of packages to be grouped together so that I can do
    pacman -S <pkg_group_name>
    to install all the packages in that group, how do I do this?
    Thanks for your help,
    Anand

    groups=('pkg_group_name')
    in the PKGBUILDS.
    man makepkg, for future ref.

  • Creating a waveform from a set of data points

    I have a set of Y values which are spaced 1/sampling rate apart. I am trying to build a waveform with them, but buildwaveform.vi does not seem to be working. Any suggestions? Thanks.
    Intern NSWCCD Carderock.

    Did you try the build waveform function.
    Look at annex,
    Hope it helps,
    Paulo
    Attachments:
    BuildWaveform.vi ‏27 KB

  • Creating intensity graph from ywo sets of data?

    Hi,
    In my vi, I am getting two data set dependent on each other, i.e. amplitude(y) versus position(x). The data acquisition of x-y data happens in a for loop. This data is transferred outside the loop with index enabled. Outside the loop I want to plot an intensity graph out of these data, while z=amplitude, x=position,y=not important, say index. I don't want simply to transfer the amplitude data outside the loop and connect the 2D array of amplitude to the intensity graph. I want to preserve the position information in the intensity graph. How can I do this?
    Thanks

    Here is a link to a posting that may have been yours also. Just some ideas I had. I hope it can help you get started somewhere.
    J.R. Allen

  • How to create a .DLL file from a .C file ?

    Hi everybody
    I'm looking for a method how to create a .DLL file from a .C file .That Dll file will be used to perform a board to measure voice quality accoding to the international standard named PESQ (perceptual evaluation of speech qualty) P.862.
    Can anyone help to start dealing with Dlls and give some advices to avoid errors ?
    thx
    Attachments:
    source.zip ‏37 KB

    Hi sinaps,
    You mention that you want to create a DLL from a .C file. Just to clarify, are you using C (.c file) or C++ (.cpp) to write your code?
    Also, if you are using C++, are you using Visual Studio? (The reason I ask is because this forum is geared towards Measurement Studio, which is an add on to Microsoft Visual Studio).
    That being said,
    If you are using C: National Instruments provides an ANSI C Application Development Environment called LabWindows/CVI which makes building dlls a snap. It has templates for DLLs and you can build them either as stdcall or cdecl dlls.
    Developer Zone Tutorial: Building a DLL with LabWindows/CVI 8.5 for use with LabVIEW 8.5
    If you are using Visual C++: Look at the link that Al provided earlier.
    MSDN: Walkthrough: Creating and Using a Dynamic Link Library
    If you aren't using CVI or Visual Studio, then really the best bet is to do a google search for "Create C DLL" or post or a forum for the appropriate environment that you are using.
    Thanks!
    Message Edited by Jervin_J on 03-14-2009 02:02 PM
    Jervin Justin
    NI TestStand Product Manager

  • How to create an Area(or shape) from a set of points?

    In fact I want to accomplish a function which can fill an area of same color on an image, just like the Magic Wand tool in Photoshop.
    I have written a function to figure out the points which should be included in the Area, but I don't know how to create the Area from a set of points...:(
    I tried to create Rectengel2D from each point, the union them one by one, but it's too slow
    Anyone can help me? Thanks

    you should look att the fillPolygon api instead, it can draw more than one corner.
    I would use it in a paintComponent method and a method that creates the x and y cordinates for each corner.
    API HELP:
    http://jdrawing.sourceforge.net/doc/0.2.1/api/org/jdrawing/graphics/FillPolygon.html

  • Create waveform from a set of points with differtent time intervals

    Hello,
    I would like to create a waveform from a set of points like this
    Time           Data
    0                 0
    0,5              1
    0,6              2
    1                 1
    2                 0
    5                 1
    The problem is that the time interval between each points are not the same.
    The only idea I found was to create a waveform for each doublet of points with the same rate (100ms) and than to append them together.
    Does anybody have a better idea?
    Regards,
    Risotto.

    If you use a Wave From data type, re-sampling is not required.
    When using a WF datatype the chart (graph) will pick-up the X value from the t0 of the waveform.
    The trick is to just build an array of the single update value and make sure the t0 value is correct.
    Re-create this example
    and try it for yourself.
    Ben
    Note: make sure the data you pass is consistant with the data already displayed. If you post a t0 value that is older than what is already displayed, the chart will clear the display and start over.
    Message Edited by Ben on 09-15-2006 11:49 AM
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction
    Attachments:
    WF_Datatype.JPG ‏59 KB

  • App. builder - creating a dll more functions

    Hi,
    here I found, that is possible to create from LabView a dll this more functions. Each added VI, will be one function - http://forums.ni.com/ni/board/message?board.id=170&message.id=19858&query.id=416227 (question no. 3)
    But I would need that the VIs (functions) are connected together, that one function will use what the another function did..
    For example:
    I'd like to create a dll (for TCP/IP communication) with 3 functions (Open connection, Write data, close connection). First, I call dll function Open connection, then can call several times function Write data and at the end, I want to close connection with the last function.
    If I tried to create such dll from VIs, which contains blocks for these tasks, I was not able to create "a bridge" between the VIs - in my example it would be wire (connection ID) between blocks TCP Open Connection TCP Write and TCP Close Connection.
    Has somebody experience with this?
    Thanks

    Hi Ondrej7,
          Here's some example code that may be all you need! (just remove ".txt")
    This DLL will only manage a single connection, but you don't have to pass any connection-reference to it.  I know nothing about Testpoint and don't know if we can pass strings Out of the DLL.  If this is a problem, then we should try outputting an array-of-bytes instead.
    Cheers!
    Message Edited by tbd on 10-06-2007 08:58 PM
    "Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)
    Attachments:
    DLL.dll.txt ‏56 KB
    DLL.llb.txt ‏120 KB
    DLL.bld.txt ‏4 KB

  • Creating a DLL in LabVIEW containing a function using pointer to pointer

    Hi!
    I´m facing the problem to create a DLL from LabVIEW containing the following C-function:
    functionF(structS** arrayA) ,
    where:
    structS is a struct of various data-types (e.g. int)
    arrayA is an C-array of structS
    How can this be done? Any ideas?
    Thank you in advance for your support

    This cannot be done in LabVIEW. LV doesn't have the data type "Pointer" as C has.
    The only workaround I can think of is to use an array of strings in LV and in the interface define the parameter as "by reference". In LV you have to typecast the wire with the string to a cluster withthe layout of structS.
    As far as I know an array of strings is represented as an array of pointer to strings. This is because strings are variable in length and therefore LV uses this method storing the pointers to the strings in the array and not the elements as usual.
    You have to read the document about memory and data types of LabVIEW. In elder versions this was in the LabVIEW Bookshelf but I haven't found it in short in the newer version.
    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

  • How to create a dll with strong name

    Hi All,
    For some security purpose, I need to create a dll with strong name by packaging the bean. I am able to create a dll from the bean but how do I create a strong name(sign) dll? I tried using jarsigner utility to sign the jar and then convert it into dll using packager utility but still the resulting dll is not signed. Please anyone let me know how can generate a signed dll by packaging my bean. Any suggestion/help is most welcome. Thanks in advance.

    Good information on strong names:
    http://www.ondotnet.com/pub/a/dotnet/2003/04/28/strongnaming.html
    Step-by-step procedure:
    1. Download Signer from Codeplex. No installation is necessary.
    2. Backup your unsigned assemblies
    3. Open the Visual Studio Command prompt or otherwise make sure that your PATH includes the .NET SDK binaries, and change to the directory where your assemblies are located
    4. In a command window, execute:
    PATH_TO_SIGNER.EXE\signer -k FILENAME OF YOUR KEY -outdir TARGET DIR -a YOUR DLL
    5. The resulting assemblies should now have a valid strong name from your company key. You can check this with:
    sn -T YOUR DLL
    The public key token must match the token of your public key.
    BTW - this is totally unrelated to Java Programming.

  • Create CVI DLL for HP Basic

    I was asked to create a DLL from my CVI project to use in HP/HT
    Basic.  How do I go about in creating one and using it in HP/HT
    Basic?  Is there any particular settings in CVI I need to
    configure to be compatible with HP/HT Basic? 
    Gary Z.

    Hello Gary Z.
    After doing a little research it looks like HT-Basics requires that you
    use the _cdecl calling convention when creating DLLs.  So in CVI,
    navigate to Options >> Build Options and select cdecl as your
    default calling convention.  Some other things you need to
    consider is how you declare your data type in your C DLL, and how you
    call them in HT-Basic.  Some websites I found helpful were: Using
    a DLL in HTBasic and DLL Rules.
    Hope that helps.
    Wendy L
    LabWindows/CVI Developer Newsletter - ni.com/cvinews

Maybe you are looking for