我有一个使用非 activeX DLL(非注册)的 VB6 应用程序。
它是通过经典Public Declare Function "Function Name" Lib "Library.DLL"
语法声明的。
在我的开发机器 (XP) 上它工作正常,但是当我部署到 Vista 或 Win7 时,我经常收到运行时错误 48 - 找不到相关 DLL 的文件。
我尝试将该 DLL 复制到我能想到的每个目录,包括测试机器上的每个环境路径和应用程序路径。
这些都是 32 位测试环境,因此不是 SysWow64 问题。
有问题的应用程序是 Outlook COM 插件,这可能是一个问题。
我设法在 Win7 上安装了 VB6,并且能够运行一个利用这个 DLL(在 Outlook 进程之外)的小型示例应用程序,所以我知道它可以工作,前提是 DLL 位于应用程序路径中。如果我App.Path
在测试环境中运行它时从我的 DLL 中调用它,毫无疑问,我的安装目录会显示,但是 DLL 在那里。
我尝试关闭 UAC。我尝试使App.Path
目录权限对所有人开放,但仍然没有骰子。