私は Visual Studio 2010 をインストールしており、他の人から入手したプロジェクトを持っていますが、エラーなしで正常にビルドできます。JNAを使用してアクセスしたいWrapper.dllを取得します。Win7 64ビットを使用しています。
しかし、次のエラーが表示されます: java.lang.UnsatisfiedLinkError: ライブラリ 'Wrapper' をロードできません: 指定されたモジュールが見つかりませんでした。
もちろん、Wrapper.dll は正しいフォルダにあり、32 ビットの dll であり、私の Java プログラムも 32 ビットの JRE を使用しているため、これはエラーの原因ではありません。
DependencyWalker を使用して、*.dll が欠落しているかどうかを確認しました。
- MSVCP80.DLL
- MSVCR80.DLL
- GPSVC.DLL
- IESHIMS.DLL
はい、いくつかの行方不明があります。このエラーは、これらの DLL が見つからないことに関連していると結論付けることができますか? しかし、Visual Studio が正しくコンパイルされ、エラーがスローされないのはなぜでしょうか? Wrapper.dll でこれらの関数にアクセスするために、これを解決するにはどうすればよいですか?
また、dll をダウンロードすることは正しいことではない可能性があることも読みました。(私は、Wrapper.dll が、Visual Studio 2005 でビルドされた別の dll またはソースコードに依存していることを知っています。)
編集:
私は、Wrapper.dll がおそらく MSVS2005 で構築された他の 3 つの dll に依存していることを発見しました。これらには上記の DLL が必要であり (dependencywalker でチェック)、Wrapper.dll もそれらをリンクしていると思います。
では、これらの古い dll を取り除くために実際に何をすればよいのでしょうか? VS2010 で他の 3 つの DLL をビルドする必要がありますか、それともこれは常に発生する問題ですか。つまり、古い DLL に依存するプリコンパイル済みライブラリを使用するには、古い DLL をコピーして貼り付ける必要があります。
これらの DLL をコピーして貼り付けずに、他のシステムでもプログラムを実行する方法はありますか?