excel - Excel VBA第二次打开时加载DLL失败,错误代码为53
问题描述
我已经构建了一个 c++ DLL 导出一些将在 VBA 中调用的函数。我的 Excel 版本是 2016。我在 Visual Studio 2017 中构建了 DLL。
当我使用以下 vba 代码创建一个新的 excel 文件时,它可以工作。但是,当我打开该 excel 文件并尝试再次运行时,它会抱怨“找不到文件”,错误代码为 53。
所以我必须不断地创建新文件并一次又一次地粘贴代码才能运行它。
请问有什么建议吗?谢谢。
Private Declare Function login Lib "XXX.dll" Alias "_login@0" () As Boolean
Private Declare Function logout Lib "XXX.dll" Alias "_logout@0" () As Boolean
Sub test()
b = login()
logout
End Sub
更新:
如果我通过 Excel 中的“打开文件”对话框打开工作簿(我必须在该对话框中选择其目录中的文件),则可以加载 DLL。如果我双击工作簿将其打开,则 DLL 无法加载。
解决方案
推荐阅读
- sql-server - 有没有办法防止为没有主键的表创建 DefiningQuery?
- java - 如果我的 GUI 依赖于从数据库检索的数据,是否可以选择异步线程?
- c - 为什么 FIFO 在客户端-服务器模型上不起作用?
- java - 如何使用存储过程中的数组进行嵌套 JSON 响应
- javascript - 使用 react-spring 和 react-three-fiber 过渡画布父级的 margin-right 时布局不会重排
- pytorch - Pytorch 视频数据集
- azure-devops - 在 Azure DevOps 工作项字段值未更新
- design-patterns - 基于用户选择动态生成请求对象的设计模式
- twitter-bootstrap - BootSwatch _variables.scss 和 _bootswatch.scss 有什么用?
- azure - VUE CLI Run on 可以在 Azure Pipelines 上运行/安装吗?