0

C++Builder 10.0 Seattle でビルドされた VCL アプリケーションがあります。フォーム上で Axis Media Control を使用してビデオを表示するため、AxisMediaControl.dll実行時にファイルがロードされます。

過去に、これを 32 ビットのターゲット マシンにデプロイしたことがあり、アプリケーションはC:\Program Files\AppNameディレクトリにあり、AxisMediaControl.dll同じ場所にインストールされていました。すべてが期待どおりに機能しました。

このアプリケーションは 32 ビット アプリケーションであるため、64 ビットのターゲット マシンにデプロイする場合は、C:\Program File (x86)\AppNameディレクトリにインストールされます。もう一度、AxisMediaControl.dllファイルがアプリケーション ディレクトリにデプロイされます。

アプリが「指定されたモジュールが見つかりませんでした」というエラーで起動に失敗します。Process Monitor を使用すると、プログラムがdirProgram Filesではなく古いディレクトリで Axis DLL を探していることがわかりました。x86アプリケーションがその場所で DLL を検索する原因は何ですか?

開発マシンで同じバイナリを実行すると、アプリケーションはSysWOW64ディレクトリから DLL をロードします。DLL がターゲット マシンのそこに配置されている場合でも、その場所を検索できません。私が理解できない古いアプリケーションパスのみを調べています。Program Files

誰かが光を当てることができることを願っています。

4

0 に答える 0