【问题标题】:Error 53 : File not found instead all DLL's are present in path错误 53:找不到文件,而是所有 DLL 都存在于路径中
【发布时间】:2018-06-08 04:02:49
【问题描述】:

我创建了一个依赖于sqlite3.dll(用于数据库访问和sqlcipher)的DLL(使用C++),我正在尝试使用VBA 访问它。在VBA 我使用以下声明:

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.dllsqlite3.dll 放在同一位置,但仍然出现同样的错误。

【问题讨论】:

  • 你的 dll 是否在 C++ 环境中测试过?
  • 是 sqlite3.dll 在你的 PATH 环境变量中的位置,如果不是那么考虑添加它。或者,如果您要控制其安装位置,则可以使用 LoadLibrary 从特定位置手动加载它。
  • 您确定您的 .dllsqlite3.dll 之间没有架构不匹配(32/64 位)吗?
  • @TSion.D.P 是的,它正在工作。我使用 VBA(Excel) 调试了代码,它工作正常。
  • @CristiFati 已检查.. 没有不匹配。

标签: c++ vba excel dll sqlite


【解决方案1】:

cryptlib.lib 所依赖的 cryptlib.lib 丢失。我已经提供了 .lib 文件并且它工作正常。

【讨论】:

    猜你喜欢
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多