09-18-2006 08:32 PM
09-18-2006 09:15 PM
09-25-2006 08:41 PM
OK, I finally got it working. ![]()
I had to install NI-DAQ in order to get the above built-in VI ("Spherical Bessel Function jn.vi") to work! ![]()
I installed NI-DAQ 7.4.1 Traditional w/ all language options selected (including LabWindows/CVI). Because I selected support for all languages, I'm not sure what was required. But I'm guessing it was LabWindows/CVI!
Here's why:
On some other machines that had problems with some missing math functions, I noticed that there were some error messages that cvirt.dll wasn't present. The only place I could find this dll mentioned in the NI website was w.r.t. LabWindows/CVI.**
It would be nice if all of the math functions, when they fail to find a dll, reported which dll it was they were looking for but could not find. Particularly if the location has (apparently) changed b/w one version of LV & another (as seems to be the case for LV7.1 vs. LV6.1).
It would also be helpful if the NI website mentioned which dlls are installed with which software, and which are required by what functions (or at least what NI calls "packages").
Without these kinds of things, it's hard to recommend to others within my company that LabVIEW is a user/programmer-friendly environment with good enough error messaging & support documentation that it is superior to the many other solutions out there on the market.
-- Matt I.
See, for example, the following articles:
http://digital.ni.com/public.nsf/allkb/1b9dd6b42eeef282852563850069e46b
http://www.ni.com/labview/last_upgraded.htm
http://digital.ni.com/public.nsf/allkb/d3efe7c6f073384886256fdd005fbcda
Note that these articles are merely the subtlest of clues that the math functions which I've been hunting for (well, LV7.1 is hunting for) are actually supported by cvirt.dll & cvirte.dll on a system that doesn't have the development software & therefore which the built app must have present.
10-03-2006 11:20 AM
Hi Matt,
Sorry to hear that you had so much trouble upgrading your application. Efosa should have replied with more specific information on what he tested and what his results are. I did some further testing, which indicates there was something wrong specific to your machine:
Test 1: I created a LV 7.1 executable that simply calls the Spherical Bessel Function jn.vi (which calls the lvanlys.dll). I reimaged a PC to only WinXP and then installed the web-downloadable LV 7.1 RTE. The executable ran as expected without any errors on this clean machine.
Test 2: I downloaded Bessel_funcs.txt and changed it to an exe file. This same executable runs as expected without any errors on my clean (LV 7.1 RTE only) machine.
From the error dialog in your previous post (err_msg.PNG), it appears that for some reason, the lvanlys.dll was either not loaded or had problems loading.
To summarize: It isn't clear to me exactly what was going wrong on your machine, but it is clear that the problem was specific to the setup of your machine. I suspect at some point, some files got shuffled around or installed/uninstalled incorrectly. I also suspect that reinstalling NI-DAQ updated some common files during installation. This could be specific to the lvanlys.dll or the LV 7.1 RTE in general. I'm pretty sure installing NI-DAQ 7.x also installs the LV 7.1 RTE, so it may have repaired the missing/corrupt files. I suspect that simply reinstalling (probably even just repairing) the 7.1 RTE would have fixed your issues. This should remove any suspicions that there is a dependency between the Spherical Bessel Function jn.vi and LabWindows/CVI.
Hope this helps,
10-03-2006 11:59 AM
Thanks for taking the time to go from a clean image.
I think you're mistaken about the issue being the runtime engine is corrupt on an isolated machine. Well, at least it's certain that it is not isolated to a single machine, because we've seen this behavior on many PCs ("this behavior" meaning always requiring NI-DAQ 7.4.1 to be installed for the .exe to work.) We also did uninstall and reinstall the RTE7.1 (on 1 PC, anyway) several times as a (failed) experiment. Lastly, when we've had similar trouble on various machines, some were totally "clean" w.r.t. pre-existing NI software other than the install of the 7.1 runtime engine (via an installer program that I wrote using the app builder). (Others already had 6.1 RTE, NI-DAQ 7.0.1, some version of NI-VISA, & NI-488.2 v. 2.3.)
However, for most .exes, if the required dll wasn't found, the built app reports that it couldn't find the required dll (not that this really helps a lot, because there's no indication which NI software installs which dll. Nonetheless, I figured out that it was NI-DAQ that fixed it anyway.). For example, on a certain machine, one of the math functions I used (I can't remember which at the moment, but it wasn't a Bessel function) required NI-DAQ 7.4.1 install (there was no NI-DAQ installed previously, by the way), and prior to that it install it did say that it couldn't find cvirt.dll. (Note that my app was only using a math function, not LabWindows/CVI.) But for the above function ("Spherical Bessel Function jn.vi"), it doesn't report the specific dll that couldn't be found (it instead says, as you know from err_msg.png, that "an external subroutine" can't be found). However, it does require (& in fact, any time it is run, creates) the dll advpack.dll in WINDOWS/system32/ or system32/dllcache.
The only thing I can think of to reconcile the differences we're seeing b/w our end and yours is this:
The runtime engine that is created by the installer freature of the app builder (or my app builder, anyway) is defective or incomplete, and requires NI-DAQ to fix or "complete" it.
I'll try what I sent you again, on a "clean" machine, but this time the runtime engine 7.1 that I install will be the one from the NI website, not from my app builder install.
10-03-2006 01:32 PM
10-03-2006 01:53 PM
Another thing to note, is that is possible that the
lvanlys.dll file is dependant on other dlls being present. I.e.
as of recently, both LabVIEW and CVI use the Intel MKL (math kernel) for some advanced
mathematical functions. It is possible that the lvanlys.dll could load
because it was included as a resource file, but the Intel MKL was not installed
because of the particular setup of the test machine. I'm not exactly sure
how your program would fail in this case (whether it would give a message or not),
but it could be a source of problems. Also, there could be problems with
multiple versions of LabVIEW being installed -- for example, if you include the
analysis dlls from version 8 instead of the ones from version 7.
Also, to clarify a point above that Travis H made, because this problem doesn't
occur on every computer, we suspect that the issue is related to a software
install/config problem which is why we are asking you the questions about how
your runtime engine is installed, etc...
Thanks for taking the time to debug with us -- hopefully we can determine
exactly how this occurred. Have a great afternoon-
10-17-2006 02:09 PM
10-18-2006 11:52 AM
10-18-2006 01:23 PM