非アクティブ X 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
が、まだサイコロはありません。