私はマネージC++アセンブリを標準のLoadLibrary()呼び出しによってアンマネージC++アプリケーションで動的にロードしています。管理対象のC++アセンブリは、複数の管理対象(C#)アセンブリに依存します。管理されているすべてのアセンブリをアンマネージアプリケーションのサブディレクトリに移動するまでは、すべて正常に機能しました。説明するために:アンマネージC++から混合モードC++/CLIの.dll(および依存関係)を動的にロード
C++の.dll(MyCoolDll.dll)- DotNetDll2.dll
アンマネージC++アプリケーション(MyCoolAppに依存DotNetDll1.dll
を.exe)
- のロードは、LoadLibrary関数を経由してMyCoolDll.dll私はへ/ someSubDirectory(MyCoolAppのコードMyCoolDll.dll、DotNetDll1.dll & DotNetDll2.dllを移動するまで( "MyCoolDll.dll")
これは、うまく働きました。 exeがLoadLibrary( "someSubDirectory/MyCooldll.dll")に更新されました
MyCoolDll.dllが読み込まれたときに、ディレクトリの代わりにDotNetDll1.dllとDotNetDll2.dllを作業ディレクトリに検索しようとしています
どのようにしてMyCoolDll.dllの依存関係をサブディレクトリに置くことができますか外出?それはアンマネージドアプリケーションの中で実行されているライブラリなので、app.configなどでこれを指定できるとは思いませんか?
うわー、ハンス、うまくいった! MyCoolApp.exeは単純な古いWin32アプリケーション(.NETではなく)なので、私は本当に疑念を抱いていました。ありがとう!コメントではなく答えとして書き留めたいですか?それを受け入れたとマークしますか? – Jordan0Day