LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

error code 21

Solved!
Go to solution

Hello,

I have an application, written in LV7.0, written on a W2K machine, that is giving me trouble when I run the exe on W98 machines.  The exe is built with the run time engine built in.  The exe runs fine on another W2K machine, and gives the following error on two @98 machines...

 

LabVIEW load error code 21: An external subroutine required for execution could not be found.

 

I am using a call to a DLL to interface to a USB device, but a copy of that dll is installed on the machine in the app folder.  I doubt the problem I've read about with calls from this dll to secondary dll's because another app, developed on the same machine, runs just fine on the same W98 machines.  In fact, I've been using this same dll to talk to USB devices for a few years now and have never run into this particular problem.  I'm not using any other DAQ cards, or any other hardware for which LV would expect to see drivers.

 

I did see, in my searching, a reference to this error when using the open documents vi, but the link was broken.  I am using open documents in this app.  I don't know if it matters.

 

Does anyone know of a way to get LV to give more info than the simple generic?

Thanks.

Rick

 

0 Kudos
Message 1 of 4
(3,523 Views)

Hi Rick,

 

If you read this closely, you will see that there is a difference in where the VIs are placed in Windows 2000 and 98.   Please investigate that avenue.

Stephen Meserve
National Instruments
0 Kudos
Message 2 of 4
(3,495 Views)

Still having same problem, but here is a bit of new information...

 

The application exe runs fine on W2K and XP.  I get the error on W98 alone.

 

I have rebuilt a similar app that, like the current trouble app, only calls this one dll.  Both apps talk to similar USB devices.  In fact, it is the same USB chip that they talk to, just slightly different applications.  The app written a few months ago, the exe that is, works fine on W2K, XP, and W98.  No problems with it.  I thought if it were something that has gone wrong on my machine that screws up the build, it should show up on an app that I know works.  Again, after rebuilding previous app, the exe works fine on all tested machines.  As stated before, I only programmatically call one dll.  If it is calling other dll's, and if that is the problem, then it is doing so differently between the two apps.  I'm not ready to believe that one.

 

Does anyone know of a way to get more info from the error code?

Thanks.

 

0 Kudos
Message 3 of 4
(3,483 Views)
Solution
Accepted by topic author rickford66

I should have been ready to believe that one.  I found the problem, and that was it.  I thought I was using the same dll, but in fact, it turned out to be different versions of the same dll.  That is, the dlls, from the same manufacturer, with the same name, had different release dates.  The newest dll was giving the problem.  My guess is that the newest dll dropped support for W98.  Anyway, it's all good now.  Thanks.

 

0 Kudos
Message 4 of 4
(3,432 Views)