2017-12-27 151 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文件,它工作。

相关问题