2

我在使用 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 问题,这让我们到达了我们现在的位置。

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

4

3 回答 3

3

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

于 2012-11-19T17:54:07.480 回答
2

在下载依赖项walker 时,下载ProcMon以查看您的 VBA 应用程序在运行时实际查看的位置。

于 2012-11-20T07:41:34.930 回答
0

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

于 2012-11-21T09:33:32.383 回答