Procedure Entry Point Could Not Be Located in Dynamic Link Library Error

Updated Feb 26, 2020

Reported In

Software

  • LabWindows/CVI
  • LabWindows/CVI Runtime

Operating System

  • Windows

Issue Details

  • I have developed a LabWindows/CVI application that runs fine on my development computer. However, when I attempt to run my application on a target computer, I receive the error:
The procedure entry point [...] could not be located in the dynamic link library [...].dll.
  • After upgrading my operating system, when I attempt to use my LabWindows/CVI executable, I get the following error:

Solution

This error has multiple possible reasons, each with their own solutions, as detailed below:
 

Using an older LabWindows/CVI Run-Time Engine version than development environment:

If the version of the LabWindows/CVI Run-Time Engine installed on the target machine is older than the version of the LabWindows/CVI environment used in development, the Run-Time Engine may not be able to find dynamic link libraries (.dll files). To avoid this, download a version of the LabWindows/CVI Run-Time Engine that is at least the same version as the development environment.
 

LabWindows/CVI Run-Time Engine conflicts:

Although multiple versions of the LabWindows/CVI development environment can be installed on a system, having multiple installed versions of the LabWindows/CVI Run-Time Engine can cause conflicts when referring to .dll files. To mitigate this, uninstall all but the newest version of LabWindows/CVI Run-Time Engine on your system, either using NI Package Manager, or Add/Or Remove Programs if you do not have Package Manager installed.

Different copies of the .dll file exist in memory:

LabWindows/CVI has a search order which is used to prioritise directories for checking for .dll files. As such, this error can be caused by LabWindows/CVI finding a modified copy of the .dll file before the expected version, which may not contain the same functions. To avoid this:
1. Use Windows Search in the File Explorer to search for copies of the .dll listed in the error.
2. Verify that the .dll files are the same, using the size as a reference.
3. If different versions are found, replace the duplicates with the desired version of the file.
 

Changes to .dll file contents in Windows upgrades:

If the problem has occurred after upgrading operating system, it may be that the contents of the copy of the referenced .dll file in C:\Windows\ were changed in the upgrade. You can use LabVIEW's Call Library Function Node to determine whether the desired function has been removed from the .dll file by:
1. Place the Call Library Function Node in the block diagram. This Node is located in the functions palette under Connectivity » Libraries & Executables.
2. Right Click on the node and select Configure.
3. Use the Browse button to navigate to the location of the .dll file you want to check.
4. Use the Function Name dropdown menu to check the functions contained in the .dll file.
If the function has been removed from the .dll file, you will need to import a copy of the .dll file from the previous operating system and distribute it with your executable. By including the .dll file and the executable in an installer, you can ensure that every computer which the application is deployed to will have a version of the .dll file which contains the functions called in your application.