System designTroubleshooting

Vision software missing entry point: find the stale DLL

Trace the vision software missing entry point to the exact stale DLL: Win32 error 127, the loader's six-stop search order, and an eight-step repair.

LumaSpec Vision10 min read Share on LinkedIn

On this page 9 sections
  1. 01Read the message before you touch the installer
  2. 02Why the loader picked the wrong file
  3. 03The four causes, in order of probability
  4. 04Capture the evidence in one pass
  5. 05Worked example: thirty minutes from dialog to fix
  6. 06The repair, step by step
  7. 07Prove the fix and stop it coming back
  8. 08When the controller is the right answer
  9. 09Questions

The dialog reads "The procedure entry point could not be located in the dynamic link library", and behind it sits Win32 error 127: the loader found the DLL by name, but the copy it selected does not export the function your application imports. On an inspection station this is a version mismatch left behind by an upgrade — an old runtime in the application folder, an outdated redistributable in System32, or a dead directory on PATH. This guide isolates the fault in order: read the message, trace the file that actually loaded, apply the one fix that matches, and prove it with three consecutive clean launches from an eight-step repair.

Read the message before you touch the installer

Two loader failures share one dialog style, and the text separates them in a second:

Dialog text Win32 code Meaning Where to work
"The procedure entry point ... could not be located ..." 127 The DLL loaded; that build lacks one exported function This guide
"The specified module could not be found" 126 The file itself is missing, or one of its own imports is Vision application startup errors and missing DLLs

Record four items before you close the box: the full function name with any decoration, the DLL name exactly as printed, the executable you launched, and the phase where it failed — launch, project load or acquisition start. The phase narrows the search immediately. A GenTL producer is an ordinary DLL that the host loads in-process when acquisition starts, so a fault that appears only at camera start points at the interface layer; the checks in GigE Vision camera software compatibility cover that layer, and the host application is innocent.

Why the loader picked the wrong file

The search order decides which copy loads, not the newest install. With the default safe search order on Windows 10 and 11, the loader checks six locations in a fixed sequence:

  1. The folder of the executable — position 1.
  2. System32 — position 2.
  3. The 16-bit system directory — position 3.
  4. The Windows directory — position 4.
  5. The current working directory — position 5.
  6. The directories on PATH, in listed order — position 6, the last stop.

An installer refreshes position 1 for the modules it ships. Entry-point errors come from the modules it does not ship: shared runtimes that live in System32, and interface DLLs with no copy in positions 1 and 2. For those, the first directory on PATH holding a matching filename wins — including a directory left there by a 2018 application while you run the 2024 one.

Bitness adds a second trap. A 32-bit process that requests a path under System32 is redirected to SysWOW64, the 32-bit library set: a request for C:\Windows\System32\msvcp140.dll returns the copy in C:\Windows\SysWOW64. A width mismatch fails differently again — the process exits with status 0xc000007b — so that code means bitness, not version. Fix the width first, then retest.

The four causes, in order of probability

Rank Cause Signature Test Fix
1 Stale DLL from an earlier release, in the application folder or on PATH Dialog appears right after an upgrade; the trace shows a path outside the current install Compare the loaded path against the install path Delete the old copy; remove the dead directory from PATH
2 Outdated Visual C++ redistributable in System32 Message names msvcp140.dll, vcruntime140.dll or ucrtbase.dll Check the redistributable entry in Programs and Features against the release your software requires Install the current redistributable, x64 and x86
3 Extension built for a different host release — plugin, GenTL producer, frame grabber interface Fault at project load or acquisition start, not at launch Load the same project with extensions disabled Install the extension build matched to the host release
4 Operating system lacks the interface — the Universal C Runtime on Windows 7 SP1 is an optional update Every modern-toolset binary on the station fails the same way Check the OS build against the release's supported list Update the OS, or redeploy on a supported image

A binary linked against the 2015-2022 toolset calls exports that a 2015-era msvcp140.dll never carried, which is why rank 2 produces this exact dialog rather than a crash. Ranks 1 and 2 lead on stations that were recently upgraded; clear them before ranks 3 and 4.

Capture the evidence in one pass

  1. Place the station in its maintenance state and stop motion through the plant's own procedure; never bypass an interlock to run a test.
  2. Start a loaded-module trace on the exact process that fails — not the launcher, not the configuration tool. The debugger's Modules window or a dependency walker lists full paths and file versions.
  3. Reproduce the fault and save three artefacts together: the message text, the module list, and the file version of every module.
  4. Identify the importer: the executable or extension whose import table contains the function named in the dialog.
  5. Mark every module carrying the target deployment's file version. Everything unmarked is a suspect, and the count is one subtraction:
suspects = modules_traced - modules_matching_target_release

modules_traced counts the application-related DLLs in your capture; modules_matching_target_release counts those carrying the current deployment's file version.

  1. Note each suspect's search-order position: position 1 means a file left in the application folder, position 2 an outdated redistributable, position 6 a PATH entry.

A capture like this takes about 15 minutes and answers every question a reinstall cycle leaves open.

Worked example: thirty minutes from dialog to fix

A carton-inspection station shows the entry-point dialog for a function in VCamAcq.dll right after the vision software moved from the 2018 release to the 2024 release. The trace lists 4 application-related modules. Three carry the 2024 deployment's file version; the fourth, VCamAcq.dll, loads from C:\Program Files\Vision2018\bin\ — a directory the system PATH still lists. The subtraction reads 4 - 3 = 1: one suspect, loading from position 6, and the host executable's import table names the missing function, which the 2024 build exports and the 2018 build does not.

The fix matches rank 1: uninstall the 2018 package, or remove C:\Program Files\Vision2018\bin from the system PATH. With the directory gone, the loader finds VCamAcq.dll in the 2024 application folder at position 1, and the relaunch is clean. Budget 30 minutes for the whole job: 5 for the trace, 10 for the version comparison, 10 for the PATH change, restart and retest, 5 for the log entry.

The repair, step by step

  1. Keep the station in maintenance; export the project, recipes, calibration data and licence status first. A repair should never cost configuration.
  2. Stop the application and its services through the supported shut-down sequence, not by ending processes mid-write.
  3. Remove exactly what the trace named: the old DLL from the application folder, the dead directory from PATH, or the outdated redistributable through Programs and Features.
  4. Install the supported runtime set from the software vendor's own installer — both x64 and x86 on a 64-bit station, because a 32-bit configuration tool loads the 32-bit set.
  5. Restart once. Pending file replacements and service changes complete at boot, not before.
  6. Launch the application from the production shortcut 3 consecutive times.
  7. Open the project and run a 10-minute acquisition soak at production rate with results logging on.
  8. Write one log line per change: component, version, path, time. The next fault then starts from evidence, not memory.

Prove the fix and stop it coming back

Three clean launches are a smoke test, not a qualification, so finish with one full inspection cycle at production speed before release. Then keep the fault out:

  • Snapshot the station image after a validated install; restoring an image beats any repair on this list.
  • Copy the system PATH into the deployment log, one directory per line, so a new entry is visible in seconds.
  • Install runtimes only from the software vendor's installer; never copy DLLs between stations.
  • After every operating-system update, rerun the 3-launch test before production release.
  • Walk the station through the machine vision software upgrade validation checklist before it returns to service.

If startup is clean but the project reports missing models, the deployment points at the wrong file location — that is missing vision models after restart, not a runtime fault.

When the controller is the right answer

Hardware never clears error 127: the same image on a replacement controller fails on its first boot. Two situations justify a redeployment. First, the software release you must run no longer supports the station's operating-system build — rank 4 with no update path. Second, two failed repairs on a station with years of layered installs: a clean image ends the archaeology.

For that rebuild, vision controllers running a supported OS image give the software a fresh start.

The MV-VC3301H-128G66 is the larger host: 5+ LAN ports, 3-4 USB 3 ports, 4 built-in light channels and 8 GB of memory, with PCIe expansion and a bundled VM6200Pro license.

Vision controllersHikrobot MV-VC3301H-128G66 I3-8100, 8GB+128G SSD, No PoE, PCIe expansion supported, Incl. VM6200Pro licenseMV-VC3301H-128G66
LAN ports
5+ LAN ports
USB 3 ports
3-4 USB 3 ports
Light outputs
4 built-in channels
Memory
8 GB
$2,419.00View partBuild a system with it

The MV-VC2140-128G40-1T is the compact alternative: 3-4 LAN ports, 2 USB 3 ports, 4 built-in light channels and 8 GB of memory behind an N-series processor.

Vision controllersHikrobot MV-VC2140-128G40-1T VC2100 Vision Controller, N97, 8GB+128G SSD+ 1THDDMV-VC2140-128G40-1T
LAN ports
3-4 LAN ports
USB 3 ports
2 USB 3 ports
Light outputs
4 built-in channels
Memory
8 GB
$1,679.00View partBuild a system with it

Redeploy from the vendor's current installer set on either controller and the stale runtime never crosses over: the image starts with one runtime generation and the PATH carries no legacy directories.

Still stuck after the trace? Send the evidence package — message text, module trace, versions, installation history — through applications support, and order hardware only after the software set runs clean on the bench.

Questions

Why does a vision software missing entry point survive a reinstall?

Because the installer only replaces files in its own folder, and the DLL the loader selects usually sits somewhere else. The executable's folder is searched first, System32 second, and directories on PATH sixth, so a stale copy in any of those locations wins over the fresh install. Delete or update the copy named in your module trace and the error clears; a fourth reinstall will not touch it.

Should I download the DLL named in the error message?

No. Third-party DLL sites hand out unversioned files: an msvcp140.dll from a 2015-era redistributable exports fewer entry points than a 2022 build, so the same dialog returns. Install the current Visual C++ redistributable, both x64 and x86, from the software vendor's installer. If a file on disk is corrupt, run the installer's repair option instead of swapping the file by hand.

What is the difference between error 127 and error 126?

Win32 error 127, the specified procedure could not be found, means the DLL loaded but lacks one exported function — a version mismatch. Error 126, the specified module could not be found, means the file is absent or one of its own imports is. A missing-entry-point dialog is always 127. Treat 126 as a separate fault with its own checklist, because the fixes differ: one replaces a build, the other supplies a file.

Is a missing entry point ever a hardware fault?

No. Error 127 is a software build mismatch; the same image on a replacement controller fails on its first boot. Hardware enters the decision in two cases: the software release no longer supports the station's operating-system build, or a legacy 32-bit extension must run on a 64-bit-only host. In both, redeploy on a controller with a supported image — after the DLL trace, not instead of it.

What should I send to the software vendor's support team?

Send the exact message text with the function and DLL names, the loaded-module trace showing the winning file path, the application release, the Windows edition and build number, the redistributable versions listed in Programs and Features, and the last two changes made to the station. State the failure phase — launch, project load or acquisition start — because that one fact separates an application fault from a project or camera-interface fault.

Corrections

  • Rewritten for usefulness: specific values with their basis, the named standards, a worked example, no hedging.