call a dll 8.2 in Labview 7.0

Hello

I have a lot of applications written in Labview 7.0.  I need to add a little update of these applications, using some of the features of the 8.2.1.  I have compiled the functions in a dll and you want to call it in my labview 7.0 application.  I have the runtime installed and work 8.2.1 example but when I just tried the same code in Labview 7.0 I get an exception to do with memory.dll, line 342 in the 8.2.1 runtime.  I guess my first question is whether or not it is possible to call a 8.2.1 lavbiew dll 7.0?

Thank you

Simon

sbosanquet wrote:

Hello

I have a lot of applications written in Labview 7.0.  I need to add a little update of these applications, using some of the features of the 8.2.1.  I have compiled the functions in a dll and you want to call it in my labview 7.0 application.  I have the runtime installed and work 8.2.1 example but when I just tried the same code in Labview 7.0 I get an exception to do with memory.dll, line 342 in the 8.2.1 runtime.  I guess my first question is whether or not it is possible to call a 8.2.1 lavbiew dll 7.0?

Thank you

Simon

Tags: NI Software

Similar Questions

  • Problem calling seconday DLLs in labview

    Hello

    I'm using Labview 8.6 for my application. The application calls a dll developed in vc ++ (main dll).  During execution of the application, the main dll(vc++) calls another (secondary dll) developed in vb 6.0 dll.

    During the process, the main dll sends data to secondary dll to display data in a pop-up window. After getting the user recognize the display, the vi application stops.

    When the application runs first time (the vi running first time after labview open), the data sent by the main dll are updated in view of the secondary DLLs. But, for the second time from new data of the main dll not are not updated in view of the secondary DLLs.

    Once again, after the closure of the vi and quit labview, if I open and run the vi, then the data of the main dll are updated in dll secodary display. But the maindll data must be updated in the secondary dll without leaving labview.

    I use "Function Call Library" to call the maindll.

    Can someone please give the remody to this problem...

    Thanks in advance.

    Swamy.

    Is - this two dll to reside in the same physical directory as your main vi? They are included in your project?

    -AK2DM

  • File not found when you try to call a dll on LabVIEW Real Time machine

    I have a dll called "DLLRTTEST" that I wrote, and claim successfully on my host.  Now, I try to call this dll from a vi that is on my computer in real time.  Currently, I get a message 'error 7 occurred at the crux of library DLLRTTEST.vi. call function' when running

    In the attached screenshot, I try to ensure that the vi that I am running is indeed on the system in real time.  I then use a 'check if file or folder Exists.vi' to confirm that the dll that I'm about to call exists on the system in real time as well.  However, I always get an error "error 7 file not found" from the node call library feature.

    Any help is appreciated.

    Thanks again for all the responses.  As I said earlier, I had already met and solved the problem identified in the link provided by Nathand.  I had to go down to Visual Studio 2008 to go beyond this particular error, after which the app of auditor of the dll in real-time reported my dll needs to run successfully.

    I just got the phone with Jack in charge NEITHER well, and it turns out that I simply had to compile my dll in release mode.  Decommissioning of VS 2008 I got the correct version of dll (msvcr90.dll), but since I am compiling in debug mode, I found myself using msvcr90d.dll (d for debug) who doesn't have my computer in real time.

  • Loading of a DLL on RT: Missing Export "DecodePointer" "Kernel32.dll" and 7 error when calling the DLL

    Hi, I recently changed to Visual Studio 2010 and Windows 7 64-bit.

    I have an existing Office RT system running RT 2009.  This system calls a DLL that I already built using Visual Studio .net 2003 and Windows XP.

    Since I've recompiled the DLL I get an error 7 file not found error when I call the RT DLL, even if I simply replaced the old DLL with a new one in the file system so the path has not changed.

    I also noticed that the message on the screen connected to the RT system during startup:

    "achieveworldpeace.dll" load error: lack of export 'DecodePointer' of ' Kernel32.dll'.

    Any ideas on this problem?  It is perhaps as simple as a switch in the compiler?

    Thank you.

    I'm not sure it's a simple switch in the project settings in Visual C. The problem is clearly in the standard C runtime library that gets linked to your DLL and refers to exports of Windows which are not available on the RT system. Don't forget that the RT system is a limited Win32 API emulation.

    I usually avoid these problems using Visual C 6 to create DLLs for LabVIEW projects. The standard library of the C runtimes will not know what Windows API reference more recent exports because they have supported even under Win95. So unless your explicitedly reference code not supported RT APIs you wouldn't have problems. If you do not use the standard C file i/o functions and management of memory in your DLL functions, you can also try to link statically C runtime libraries in your DLL, or vice versa depending on what you have now. It may or may not work. Otherwise there is not much else but by using an earlier version of Visual Studio.

  • repeatedly calling a dll that contains a loop

    I would like to call a dll function that contains a while loop. This copy of the data to a buffer loop a signal command "on" is true:

    void Get (double * x, double * y, double z *, double *, double * P, double * R, int on)
    {
    int index is Index - 1;.

    while(on == 1)
    {
    If (index > = buffersize)
    {
    index = 0;
    }
    * x = buffer [index]. Position [0];
    * y = buffer [index]. Position [1];
    * z = buffer [index]. Position [2];
    * Y = buffer [index]. Angles [0];
    * P = buffer [index]. Angles [1];
    * R = buffer [index]. Angles [2];
    index ++;
    }
    }

    I want to call this function from dll once 'on' is set to true and it ends once it becomes false. I also want to be able to 'on' on and outside, so that it can copy data from the buffer when I want to. I could not find a way to do it, and whenever I walk through the program it does not 'stick' when the Get function is called (i.e. the while loop inside the GET is running), as I would expect.

    Thank you for any assistance.

    I guess 'Index', 'buffersize', etc., is static variables?

    In any case, once you called the function expected of LabVIEW for the function to fill. You can not dynamically pass a new value for "on" during the execution of the function. Note that this is not a question of LabVIEW. The same would be true when using this DLL from any other programming language. What you need to do is to have the function use static 'on' and then provide a separate function to set this value. Note that you must also configure the COLD LAKE to be "incoming".

  • call a DLL that has the user-defined types

    I am trying to call a function in a DLL that is

    int32 system_config(&recCfg, &pulseCfg, errMsg)
    

    recCfg is a structure consisting of 3 double rooms and 2 integers

    and pulseCfg is a structure consisting of just Boolean

    I don't know how to set the input parameters for this call the library feature.

    LabVIEW sees as

    void system_config(void)
    

    I see the only choice of Numeric, Array, String, waveform, digital waveforms, digital data, ActiveX, Adapt to Type and pointer to Instance data for arg1.  ActiveX seems to be the only one to use?

    NYC says:

    I am trying to call a function in a DLL that is

    int32 system_config(&recCfg, &pulseCfg, errMsg)
    

    recCfg is a structure consisting of 3 double rooms and 2 integers

    and pulseCfg is a structure consisting of just Boolean

    Actually contrary to what Simon says you can do in this case. But your line you are showing is unfortunately very unclear, because he does not understand the real typedef for your clusters. So I have to go by what you write in prose that is... Well... not very detailed.

    The first is simply a cluster in LabVIEW with 3 floats to double precision, followed of 2 integers. You find yourself what bitsize integer, you need, as you do not show the typedef in the cluster. In order to connect to a cluster in a CLN you must configure this setting as to adapt to the Type. But be careful who does not work for clusters containing strings or arrays at all. Tables and chains of LabVIEW are something completely different than what awaits a C DLL. You can configure the parameters of function to be C compatible pointers to arrays and strings and LabVIEW will make sure to do the conversion on every call, but you cannot configure the CLN to convert strings and tables within a cluster.

    The second group is really equivalent to a simple Boolean value passed by reference. As you do not show the actual type of the Boolean value, it is difficult to recommend this type of data to use in LabVIEW. Windows BOOL is a 32-bit integer and C++ bool is usually a 8-bit value which would coincide with the Boolean LabVIEW 8-bit use. You cannot configure a Boolean setting directly in the NLCS, so you can either use an integer of size accordingly or create this cluster with a single LabVIEW boolean anyway (if your bool is a bool C++ and not something else) and do the same as for the previous cluster/structure parameter.

  • DLL, error when quiting LabVIEW 2009 on WIN7

    Hello

    I reduced the problem in my EXE application code following joint (see attachment). Somehow the DLL (in User32.dll) calls create a problem when quiting Labview 2009. The Application remains resident in the bar of Windows taskbar and after a while an error pops up about that there was a problem to close the app and it may be reported to Microsoft if you wish. Then a second error message appears before the application disappears from the taskbar. If I remove the DLL:calls in the code then the problems disappear.

    Here I unloaded DLL calls on a special way before quiting LabVIEW?

    Another potential problem not mentioned in this article, it's that you have included your explicitedly user32.dll in your built application. This creates a 200% for sentencing as the kernel32.dll file user32.dll and others are always residently loaded into memory anyway and mapped in the system section of memory of a process. If you apply again to load this DLL by its explicit name, you end up having two copies of it mapped in your memory space of the process and which will cause really weird problems.

    To avoid this problem, make sure that the name of the library within the library node call indicates only the name of the DLL without any path information. Close the dialog box, and then save it. If you reopen the dialog box display the full path but it still save the name only until you make a change in the control of path, date at which you can eventually have a full path again.

  • Call a DLL in an integrated project

    Hello world

    I created a Subvi, which returns the recognized audio devices and readers who are searched in a specific way. For audio devices I use lvsound2.llb functions. When I call these functions as soon as it works fine, but when I change the configuration during execution (it's inevitable), it is not up-to-date values.

    Say he finds 4 audio devices and when I disconnect them and rerun the VI it still says 4. To work around this problem, I created a DLL to from this Subvi and call the DLL from my hand. This works very well every time in the Project Explorer, given that the DLL is recalled every time and does not stay in memory in the same way the Subvi front. However, once I build my project into an executable file, it stops working. He always tells me, there is no audio device recognized.

    Project Explorer: Hey 4 devices audio, excellent!

    Casting of Exe: Nope, nothing here.

    Any ideas, where would be the problem? I will attach the VI I used to create a DLL from.

    Kind regards

    Pedro

    Too bad, I had to manually include the "data" of the created DLL file. LabView has failed to do himself.

    Kind regards

    Pedro

  • Call the dll in BT (usbm.dll)

    Hi all

    I'm having a hard time finding how to call a DLL in Labview. I read a little bit on this subject but am still a beginner. The DLL in question is usbm.dll (http://www.usbmicro.com/, the list of functions & types is documented here). I use the call library node to call the DLL.

    So I call things with no input argument functions work well (for example my first 2 calls check for the presence of the device and the number of devices and work ok returning the correct output)

    Then I try to use functions with arguments (3rd stage of the VI) and Labview does not have them (error 1097). I'll for function "int USBm_DeviceValid (unsigned char device)", in my opinion, that argument must be of type uint8 and output type int8... I tried all numeric types, does not.

    In addition, if I skip the VI 3 and go to step 4 (calling a function that takes 2 parameters and sends a command to my device): the function is executed (for example the unit move), but then Labview block (exits without error message). Is it because of calling the function?

    Any suggestions would be welcome, thanks!

    Hi lvrat, thanks for your suggestions.

    I had the problem. I got an older version of this DLL usbm (as well as some example of LV files) which works very well. Looks like the DLL most recent that I was using has some issue with Labview...

    I enclose these files (they were not easy to find), in case someone else tries to interface to a USBmicro device.

  • SubVIs called screw embedded in a DLL must be located at the opening of a VI that calls the DLL

    I have compiled a DLL that contains two exported screws calling subVIs that calls another DLL that contains hardware dongle functions.  The build DLL works fine and the two screws work fine as source code.  The reason why I want to build a DLL, it is avoid distributing the source dongle screws in order to make the two functions called more sure.  However, when I try to open a VI that makes a call to one of my two functions of the DLL (screws exported), LabVIEW try to find all the subVIs called by VI exported in the DLL.  This suggests that the DLL does not contain the subVIs - probably each VI called by the exported screws must be built in the DLL - or am I completely wrong?  I tried setting all the subVIs and the dongle DLL like 'always understood' and even export all the subVIs too.  The constructor of the DLL is able to include the entire hierarchy of VI in the DLL?  Am I missing a special combination of parameters?

    To summarize my approach:

    A first level VI (to provide an end user with password protected diagram) calls my DLL (two functions are exported screws) that call subVIs that call the DLL dongle.  I want only to provide my DLL and the dongle DLL, NOT all their source code is linked.

    Any help would be greatly appreciated, that this problem has ceased completely in my development.

    Mike

    After traveling through the builder application LAVA forum, I found a post that discusses a problem of construction of the Advanced setting 'Use LabVIEW 8.x file layout'.  This should be checked to make the build work.  Apparently R & D already know the problem (# 158487).  Moreover, previous projects of 8.6 will have this checked by default, which makes them to build properly.

    The new application now works correctly.

    The problem of generation original DLL is also fixed.

  • Satellite P100-160: Mono sound when you use MciSendString() calling Winmm.dll

    I have a Satellite P100-160.
    The sound works well for some programs, Windows Media Player, etc. Audigy.

    However when I call for its program using MciSendString() calling Winmm.dll I get only mono sound channel, good times left channel is almost silent. SetAudio volume has no effect.
    I've updated the BIOS and the audio driver for the latest versions available on this site.

    Does anyone have a solution or pointer to a solution.

    Is it really a laptop problem?
    Maybe the multimedia function MciSendString() provides only the mono or your have done something wrong?  :|

    See Microsoft Developer Network:
    http://msdn2.Microsoft.com/en-us/library/ms709492 (vs.85) .aspx

    I don't know what you want to do and why you use the MciSendString() to call Winmm.dll, but if the sound display correctly using current players like Windows Media Player, for example, I really put t see any hardware problem m

    Note it is a Toshiba user forum and here you will encounter common users who share knowledge and solve common issues of interest.
    In your case, I recommend you to visit a few Microsoft developer forums and support sites.

    Best regards and good luck

  • Call a DLL in TestStand by reference

    All,

    I developed a DLL that control a USB based power. The call of the dll works from TestStand 4.1 most of the time. What I think is happening, is that whenever I call the dll in my main sequence of the file as well as other files in sequence, as several instances of the dll is loaded.

    Part of the init of food must pass back a SESSION number that is used in subsequent calls to the dll. I store as a global variable in TestStand and pass around sequence that never he needs.

    How can I load the DLL at the beginning of the sequence and PASS a reference (handle) to all other calls to the dll?

    Thanks in advance

    Carmine

    Doug,

    Thanks for your help. I found a UnLoadModules() in one of the child seq that I missed. Unless I missed all the others, I think this should be resolved.

    Carmine

  • Two parallel executions, calling a DLL function

    Hello

    Since this test takes about 6 hours to test my USE, I plan to use the parallel model to test 2 UUT at the same time in parallel.

    I implement the test code as a DLL of CVI.

    However, to my surprise, it seems that the steps that call a DLL function actually traveled in one series, not in parallel:

    Test 2 power outlets if one enters and executes a DLL works, the other waits for the first to complete its operation and return. While the other runs on the same copy of the DLL, so that the DLL global variables are actually shared between executions.

    So if a DLL will take 5 minutes to complete, two executions in the running at the same time take 10 minutes. This isn't a running in parallel in every way.

    What I want and expect also TestStand, was to completely isolate the copies of these two executions DLL such as test two casings could run at the same time the same DLL function by arbitrary executiong their copy of the function, completely isolated from one another.

    So they separated globals, discussions, etc., and two parallel jacks take 5 minutes to run a step, instead of 10.

    Such a scenario is possible?

    If not, how can I use my test in parallel (in truly parallel) when the use of 2-socket test?

    (1) Yes, he'll call the multiple executions in TestStand calling into the same dll in memory the same copy of this DLL. Thus dll called in this way must be thread-safe (that is written in a way that is safe for multiple threads running the code at the same time). This means usually avoiding the use of global variables among other things. Instead, you can store the thread shows in local variables within your sequence and pass it in the dll as a parameter as needed. Keep in mind all the DLLs your dll calls must also be thread-safe or you need to synchronize calls in other DLLs with locks or other synchronization primitives.

    1 (b) even if your dll are not thread-safe, you might still be able to get some benefits from parallel execution using the type of automatic planning step and split your sequence in independent sections, which can be performed in an order any. What it will do is allow you to run Test a socket A and B Test to another socket in parallel, and then once they are then perhaps test B will take place on one and test one run on the other. In this way, as long as each test is independent of the other you can safely run them in parallel at the same time even if it is not possible to run the same test in parallel at the same time (that is, if you can not run test on two Sockets at the same time, you might still be able to get an advantage of parallelism by running the Test B in one take during the tests in the other. See the online help for the type of step in autoscheduling for more details).

    (2) taken executions (and all executions of TestStand really) are threads separated within the same process. Since they are in the same process, the global variables in the dll are essentially shared between them. TestStand Station globals are also shared between them. TestStand Globals file, however, are not shared between runs (each run gets its own copy) unless you enable the setting in the movie file properties dialog box.

    (3) course, using index as a way to distinguish data access are perfectly valid. Just be careful that what each thread does not affect data that other threads have access. For example, if you have a global network with 2 elements, one for each grip test, you can use safely the decision-making of index in the table and in this way are not sharing data between threads even if you use a global variable, but the table should be made from the outset before start running threads , or it must be synchronized in some way, otherwise it is possible to have a thread tries to access the data, while the other thread is created. Basically, you need to make sure that if you use global data which the creation/deletion, modification and access in a thread does not affect the global data that the other thread use anyway in or we must protect these creation/deletion, modification and access to global data with locks, mutex or critical sections.

    Hope this helps,

    -Doug

  • Sims House Party, the installation program starts, then immediately closes, gives me the error "0 x 80040707 - call function DLL crashed: SORTS." PathGetSpecialFolder.

    original title: error number: 0 x 80040707
    When I try to install the Sims House Party, the installer launches and then immediately closes, gives me the error "0 x 80040707 - call function DLL crashed: SORTS." PathGetSpecialFolder.

    According to the compatility of Windows 7, the House Party is compatible under 64-bit and 32-bit Windows 7. I tried to install it on another computer running Windows 7 32 bit and the error does not occur.

    I am running Windows 7 Professional 64 bit.

    Looks like that method 1 solved my problem.  Normally, I would get this message several times a day.  For more than 3 hours I applied the method 1, and the error has not appeared again.  Thank you very much.

  • Component ActiveX cannot create object wrong when VB script call a dll

    Hello

    I'm new to VB and .NET. We have a SQL job in our application (developed by someone else) hosted on Win Server 2003, who calls the VB script and this script inturns calls a DLL.

    When I run this job, I get the error - component ActiveX cannot create object.

    I tried to print the source of the error (by Err.Source and it gives me 'Microsoft VBScript runtime error').

    Any help would be appreciated. Let me know if I could extract more information.

    Thanks in advance.
    ME

    Hi SenLady,

    The question you have posted here is related to Visual Basic and would be better suited on MSDN forum. I suggest you post your question on the following link.

    http://social.msdn.Microsoft.com/forums/en-us/categories

Maybe you are looking for