VBA Excel 找不到 DLL

6
我目前正在尝试在Excel工具中添加对功率分析仪的控制。 公司提供USB驱动程序和适当的模块及DLL文件。 我将DLL文件添加到System32文件夹中以确保它们在路径中被读取。 导入模块并尝试运行程序后,我收到“找不到文件”的错误提示。 然后我尝试手动编写DLL的位置,但是我收到了同样的错误提示。
我在互联网上查找,发现唯一的问题可能是DLL缺少依赖项。 我尝试使用以下这行代码:
Declare Function TmSend Lib "tmctl.dll" (ByVal id As Long, ByVal msg As String) As Long

这行代码是制造商提供的模块的一部分。我是否漏掉了什么导致它无法正常工作?在联系制造商之前,我想确认一下。

编辑:

似乎制造商上传了一个损坏的DLL文件导致了问题的出现。使用Dependency Walker检查该文件时,它甚至无法读取DLL文件。


在Excel中,转到“工具”->“引用”,并添加对DLL的引用(在VBA IDE中)。 - Fred
1
我已将DLL文件添加到System32文件夹中,以确保它们在路径中被读取。是否使用Regsvr32注册? - Siddharth Rout
当我运行该命令时,出现了一个错误,提示“已加载模块,但未找到入口点 DllRegisterServer。”。 - Talls
1
@Fred 不需要将 DLL 加入引用。引用是针对 COM 的,Declare 用于访问外部过程。 - LS_ᴅᴇᴠ
1个回答

7
我看到您的问题中提到了您已经尝试了所有正常的操作(确保dll在路径上等)。现在您需要仔细检查这个dll。请下载http://www.dependencywalker.com/,然后使用它来打开您的dll。所有缺失的依赖dll将会被清晰地显示出来。把它们加入到您的路径中,就完成了。(为了消除一些混淆: 您不需要注册此dll或添加对它的引用。)

1
啊!依赖项查看器!我怎么会错过它呢 :) 做得好。 - Siddharth Rout

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接