0

我有一个在西雅图 C++Builder 10.0 中构建的 VCL 应用程序。它使用表单上的 Axis Media Control 来显示视频,因此它会在AxisMediaControl.dll运行时加载文件。

过去,我将它部署在 32 位目标机器上,应用程序位于该C:\Program Files\AppName目录中,并且AxisMediaControl.dll安装到同一位置。一切都按预期工作。

这个应用程序是32位应用程序,所以部署到64位目标机器时,安装在C:\Program File (x86)\AppName目录中。再次,该AxisMediaControl.dll文件部署在应用程序目录中。

该应用程序无法启动,并出现错误“找不到指定的模块”。Program Files使用 Process Monitor,我发现该程序正在旧目录而不是x86dir中寻找 Axis DLL 。什么会导致应用程序在该位置查找 DLL?

在我的开发机器上运行相同的二进制文件,应用程序从我的SysWOW64目录加载 DLL。如果 DLL 放置在目标机器上,它仍然无法在该位置查找。它只是查看旧的Program Files应用程序路径,我无法理解。

我希望有人可以提供一些启示。

4

0 回答 0