我有一个在西雅图 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,我发现该程序正在旧目录而不是x86
dir中寻找 Axis DLL 。什么会导致应用程序在该位置查找 DLL?
在我的开发机器上运行相同的二进制文件,应用程序从我的SysWOW64
目录加载 DLL。如果 DLL 放置在目标机器上,它仍然无法在该位置查找。它只是查看旧的Program Files
应用程序路径,我无法理解。
我希望有人可以提供一些启示。