Windows DLL问题

时间:2012-11-19 16:06:02

标签: windows vba dll

我在使用C DLL的Excel VBA应用程序时遇到问题。 DLL总是存储在电子表格上方的目录中,并且它的方法是在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位)并且它工作正常,除了一台计算机,我们还不知道为什么。我们得到的只是一个错误,程序无法在调用dll方法的VBA方法中找到.. \的dll。安装MFC100.dll解决了以前的运行时错误53问题,这使我们到了原地。

如果你有任何关于如何解决这个问题的建议,或者想要尝试什么的想法,我将非常感激, 詹姆斯

3 个答案:

答案 0 :(得分:3)

如果实际上问题是缺少DLL的依赖项之一,VBA会倾向于抱怨它“无法找到”DLL。我怀疑那是问题所在。尝试(重新)安装Visual C++ libraries。或者,在Dependency Walker(或类似工具)中打开有问题的DLL,以找出它想要的内容。

答案 1 :(得分:2)

在下载依赖关系步行器时,请下载ProcMon以查看您的VBA应用实际查看运行时的位置。

答案 2 :(得分:0)

问题是我们没有安装64位版本的VS C ++可再发行组件,只有32位版本。安装完成后,一切正常。