在動態鏈接庫中找不到Procedure Entry Point錯誤

更新 May 25, 2021

產品資訊

軟體

  • LabWindows/CVI
  • LabWindows/CVI Runtime

操作系統

  • Windows

問題敘述

  • 我已經開發了LabWindows / CVI應用程式,可以在我的開發電腦上很好地運行。但是,當我嘗試在目標電腦上運行應用程式時,收到錯誤:
The procedure entry point [...] could not be located in the dynamic link library [...].dll.
  • 升級作業系統後,當我嘗試使用LabWindows / CVI可執行檔案時,出現以下錯誤:

解決方案

此錯誤有多種可能的原因,每種原因都有其自己的解決方案,如下所述:

使用比開發環境舊的LabWindows / CVI Run-Time Engine版本:

如果目標電腦上安裝的LabWindows / CVI Run-Time Engine的版本早於開發中使用的LabWindows / CVI環境的版本,則Run-Time Engine可能無法找到動態鏈接庫(.dll文件)。為避免這種情況,請下載LabWindows / CVI Run-Time Engine的對應版本,該版本需至少與開發環境的版本相同。

LabWindows / CVI Run-Time Engine衝突:

儘管可以在系統上安裝多個版本的LabWindows / CVI開發環境,但是在引用.dll文件時,具有多個已安裝版本的LabWindows / CVI Run-Time Engine會導致衝突。為了緩解這種情況,請卸載其他版本只保留系統上的LabWindows / CVI Run-Time Engine的最新版本,使用NI Package Manager來進行卸載,如果沒有安裝Package Manager ,請手動卸載程式

.dll文件的不同副本存在於記憶體中:

LabWindows / CVI有一個搜索順序,用於對目錄進行優先級排序以檢查.dll文件。因此,此錯誤可能是由於LabWindows / CVI在預期版本之前找到了.dll文件的修改副本而引起的,該版本可能不包含相同的功能。為了避免這種情況:
1.在 File Explorer 中使用Windows Search來搜索錯誤中列出的.dll的副本。
2.以大小作為參考,驗證.dll文件是否相同。
3.如果找到不同的版本,則用所需的文件版本替換重複的文件。

Windows升級中對.dll文件內容的更改:

如果在升級作業系統後出現問題,則可能是在升級過程中更改了C:\Windows\中所引用的.dll文件副本的內容。您可以使用LabVIEW的Call Library Function Node通過以下方法確定是否已從.dll文件中刪除了所需的功能:
1.將“Call Library Function Node”放置在block diagram中。該節點位於功能面板“Connectivity » Libraries & Executables
2.右鍵單擊該節點,然後選擇Configure
3.使用Browse按鈕導航到要檢查的.dll文件的位置。
4.使用Function Name下拉菜單檢查.dll文件中包含的功能。
如果該功能已從.dll文件中刪除,則需要從以前的作業系統導入.dll文件的副本,並將其與可執行檔案一起分發。通過在installer中包含.dll文件和可執行檔案,可以確保將應用程式部署到的每台電腦都具有.dll文件的版本,該版本包含應用程式中呼叫的功能。