2017-12-27 704 views
0

我創建了一個DLL(使用C++),它依賴於sqlite3.dll(用於數據庫訪問& sqlcipher),我試圖使用VBA來訪問它。在VBA我使用以下聲明:錯誤53:文件未找到,而是所有的DLL都存在於路徑中

Declare Function GetData_VBA Lib "xyz.dll" (ByVal path As String, ByVal id As String, ByRef inputArr() As String, ByRef output() As String) As Boolean 

早些時候當DLL是不依賴於sqlite3.dll它工作正常,但是當我介紹sqlite3.dll它開始嘔吐錯誤

錯誤53:xyz.dll沒有找到

我試圖改變聲明

Declare Function GetData_VBA Lib "C:\documents\user\...\projects\xyz.dll" (ByVal path As String, ByVal id As String, ByRef inputArr() As String, ByRef output() As String) As Boolean 

但仍顯示相同的事情。我用dependency walker來檢查對xyz.dll的所有依賴。我嘗試將所有xyz.dll & sqlite3.dll放在同一位置,但仍然是相同的錯誤。

+0

你的dll是否在C++環境中測試過? –

+0

sqlite3.dll在您的PATH環境變量中的位置,如果不是,則考慮添加它。或者,如果您正在控制其安裝位置,則可以使用特定位置的LoadLibrary手動加載它。 –

+0

您確定您的* .dll *和* sqlite3.dll *之間沒有架構不匹配(32/64位)嗎? – CristiFati

回答

0

cryptlib.lib缺少sqlite3.dll從屬關係。我已經提供了.lib文件,它工作。

相關問題