I have a VCL application built in C++Builder 10.0 Seattle. It uses Axis Media Control on the Form to display video, therefore it loads the AxisMediaControl.dll
file when it runs.
In the past, I have had this deployed on a 32bit target machine, where the application lived in the C:\Program Files\AppName
directory, and the AxisMediaControl.dll
was installed to this same location. Everything worked as expected.
This application is a 32 bit application, so when deploying to a 64 bit target machine, it is installed in the C:\Program File (x86)\AppName
directory. Once again, the AxisMediaControl.dll
file is deployed in the application directory.
The app fails to launch with the error "The specified module could not be found". Using Process Monitor, I found the program is looking for the Axis DLL in the older Program Files
directory instead of the x86
dir. What would cause the application to look for the DLL in that location?
Running the same binary on my dev machine, the application loads the DLL from my SysWOW64
directory. If the DLL is placed there on the target machine, it still fails to look in that location. It is ONLY looking in the older Program Files
application path, which I cannot understand.
I'm hoping someone can shed some light.