LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Error "SUB-VI is not executable" at calling VIs/LLBs from an EXE

I have an EXEcutable to launch different VIs and LLBs, that can be choosen by the user on systems with only the LV-runtime-engine installed.
That works except for one LLB.
By starting this LLB I get the message, that a Sub-VI is not executable.
But in the LV-development-environmet this LLB works. I saved the LLB with all VI.lib-files and external files included.
Even saving the application as VIs in a folder with all files included doesn't solve the problem.
So what is the problem?

Lorand
0 Kudos
Message 1 of 8
(4,062 Views)
When you select "Build Application or Shared Library", in "Source Files", do you add the dynamic vi's and support files?

In "Installer Settings", do you select "Create installer" and include the all LLB's and vi's necessary for it to work?

At first glance, you seem to be doing it right... You must be close to success. Double check the way you build your executable.

-cheers-

JLV
Message 2 of 8
(4,061 Views)
> But in the LV-development-environmet this LLB works. I saved the LLB
> with all VI.lib-files and external files included.
> Even saving the application as VIs in a folder with all files included
> doesn't solve the problem.
> So what is the problem?
>

If one of your VIs or subVIs has a broken run button or a menu, use the
dialog to see which is broken. LV will help you take vi.lib VIs, but it
doesn't currently take along DLLs or driver installations. Most likely
there is a missing driver, DLL, or activeX component.

Greg McKaskle
0 Kudos
Message 3 of 8
(4,061 Views)
That's what it sounds like to me, too..

But if it worked in his LV environment, there shouldn't be any broken link.

-JLV-
Message 4 of 8
(4,061 Views)
...until he takes it to another machine.

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 5 of 8
(4,061 Views)
> ..until he takes it to another machine.

Right. The development machine may have drivers and DLLs installed that
the llb links to. Take the llb to another machine without the drivers
or DLLs, and the VIs will open and be broken because they are incomplete.

Greg McKaskle
0 Kudos
Message 6 of 8
(4,061 Views)
Good morning from Germany, and thanks for your reply.

Yeah, that's it. I was able to find the error on friday, by my self.
It really was a missing DLL.

But is there a way to find out which external files (DLLs,...) the application needs, beside trying out on a non-developers system?

Lorand
0 Kudos
Message 7 of 8
(4,061 Views)
Hi Lorand,

nearly it is. Load all your VIs into LV. Then use Edit >> Find (STRG+F) and choose in "Select object" the Call Library Function. Check "Include VIs in vi.lib" and make the search. This way you will get all references from VIs to DLLs.

When you have the list of all those DLLs load it into the dependency walker. Dependency walker (Depends.exe) is available form the resource kit or part of Visual Studio. Dependency walker will show all DLLs needed for a DLL or program.

The only DLLs you cannot get are that one which will be loaded at runtime of the DLL.

Waldemar
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
0 Kudos
Message 8 of 8
(4,061 Views)