Windows DLL问题

我遇到了使用C DLL的Excel VBA应用程序的问题。 DLL始终存储在Spreadsheet上方的目录中,它的方法在VBA中使用;

#If Win64 Then Public Declare PtrSafe Function <function name> Lib "..\<dllname>" () As Long #else Declare Function <function name> Lib "..\<dllname>" () As Long #end if 

你可以将这两个文件及其目录结构封装在一个zip文件中,将它移到windows安装(不同版本,32位或64位),除了一台计算机之外,它可以正常工作,但我们不知道为什么。 我们得到的是一个错误,程序无法finddll在.. \从调用dll方法的VBA方法。 安装MFC100.dll解决了以前的运行时错误53问题,让我们到了我们的位置。

如果您对如何解决这个问题有什么build议,或者想要尝试什么,我会非常感激,詹姆斯

VBA会倾向于抱怨说,如果实际上问题是缺少某个DLL的依赖项,那么它“找不到”DLL。 我怀疑是这个问题。 尝试(重新)安装Visual C ++库 。 或者,在Dependency Walker (或类似的工具)中打开这个有问题的DLL来找出它想要的东西。

在下载依赖步行者的同时,下载ProcMon来查看你的VBA应用程序实际上在运行时的位置。

问题是我们没有安装VS C ++ redistributable的64位版本,只有32位版本。 一旦安装,一切正常。