Application With Call Functions Crashes With Access Violation Error

Updated Nov 24, 2020

Reported In

Software

  • LabVIEW
  • LabVIEW Application Builder Module

Operating System

  • Windows

Issue Details

My program uses Call Library Function Nodes or ActiveX calls and runs as expected in the LabVIEW Development Environment. When I try to run my program as an executable, I receive the next error:
​How do I resolve this?

Solution

This specific behaviour is caused by linking to a system library by its path, rather than by the name of the library. Referring to the library by its path causes LabVIEW to include that path in the build specification of the executable, which will then cause a crash on execution.

To prevent this, go through the following steps
1. Double click on the Library Function Node to access the configuration window
2. Change from using the absolute file path for the library or object you are calling to either the relative file path or just the library name.

For example, if you need to call User32.dll, you could use either the absolute file path C:\Windows\System32\user32.dll, the equivalent relative file path %windir%\System32\user32.dll, or user32.dll the within the Call Library Function options menu. Either of the latter two will prevent this crash.

If using the relative path or the Library Name doesn't prevent the crash, you can also select Specify path on diagram  in the configuration windows, as shown bellow : 

In this case, in the path in input, you'll need to specify the library name in stead of the path to the library :
If neither of the two previous solution prevent the crash, please contact NI Technical Support

Additional Information

The EIP code and version number in the error window can differ from one execution to the next.