VBA找不到特定的dll

时间:2019-07-19 13:35:25

标签: vba dll

我试图将dll链接到vba项目,并且我要疯了,因为即使我对路径有100%的把握(我从确切位置粘贴了路径的100倍)也找不到它。 / p>

我打电话给

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本身就可以了...

1 个答案:

答案 0 :(得分:0)

您的dll可能依赖于其他dll。您可以使用Dependency Walker获取相关dll的完整列表。 依赖的dll必须位于以下其中之一(来自msdn):

  
      
  1. 从中加载应用程序的目录。
  2.   
  3. 系统目录。使用GetSystemDirectory函数获取   此目录的路径。
  4.   
  5. 16位系统目录。没有函数可以获取   该目录的路径,但是会搜索它。
  6.   
  7. Windows目录。使用GetWindowsDirectory函数获取   此目录的路径。
  8.   
  9. 当前目录。
  10.   
  11. PATH环境变量中列出的目录。   请注意,这不包括指定的每个应用程序路径   通过“应用路径”注册表项。在以下情况下,不使用“应用路径”键   计算DLL搜索路径。
  12.   

如果您正在运行VBA项目,则可能Excel.exe正在加载代码。这意味着API.dll的从属dll必须位于上面引用中的目录之一中。 请注意,将dll放在系统目录中可能会影响系统中其他应用程序的功能。 (read about dll hell)