vba - VBA 找不到特定的 dll
问题描述
我正在尝试将 dll 链接到 vba 项目,但我要疯了,因为即使我 100% 确定路径(我从确切位置粘贴了 100 倍路径),它也无法找到它。
我打了电话
Private Declare Function IMB_connect _
Lib "C:\Users\Andrea.GIORDANO\Desktop\API\bin_dynamic\API.dll" _
(ByVal n As String) As Long
但它继续向我返回错误 53:找不到文件。
我不明白看起来如此愚蠢的问题是什么......我尝试了各种斜线'\','\','/','//':没有成功。
仅供参考,我在 c++ 项目中链接了相同的完全相同的 dll,在这种情况下运行良好,所以我相信 dll 本身很好......
解决方案
您的 dll 可能依赖于其他 dll。您可以使用Dependency Walker获取依赖 dll 的完整列表。依赖的 dll 必须位于以下之一(来自msdn):
- 加载应用程序的目录。
- 系统目录。使用 GetSystemDirectory 函数获取该目录的路径。
- 16 位系统目录。没有函数获取这个目录的路径,但是被搜索了。
- Windows 目录。使用 GetWindowsDirectory 函数获取该目录的路径。
- 当前目录。
- PATH 环境变量中列出的目录。请注意,这不包括 App Paths 注册表项指定的每个应用程序路径。计算 DLL 搜索路径时不使用 App Paths 键。
如果您正在运行 VBA 项目,则可能Excel.exe
正在加载您的代码。这意味着您的依赖 dllAPI.dll
必须位于上面引用的目录之一中。请注意,将 dll 放在系统目录中可能会影响系统中其他应用程序的功能。(阅读有关 dll 地狱的信息)。
推荐阅读
- java - 如何使用 Java“漂亮打印”或“转储”opensaml 断言对象?
- javascript - javascript轮播不滑动
- python - 为什么我的脚本不起作用,即使我以管理员身份运行它?
- google-sheets - 如何获取和修复具有#ERROR 的单元格的原始值
- javascript - WebdriverIO - 如何检索当前聚焦/选定/活动元素的 HTML?
- visual-studio-code - VS 代码 V1.31 emmet 智能感知不适用于 Python/Django 扩展
- angular - Angular Material 2:对标题使用不同的字体配置?
- mysql - 使用 aspx.cs 从 MySQL 获取返回值/参数
- embedded - 如何重新启动任务
- exit - Python:退出脚本