LoadLibraryEx
関数はサイド バイ サイド マニフェストを使用しますか? SxS マニフェストが埋め込まれた bar.dll があり、そのマニフェストにはこの bar.dll のバージョンが記述されています。他の dll ファイル foo.dll には、bar.dll を指定されたバージョンの依存関係としてリストするマニフェストがあります。しかし、foo.dll から bar.dll を読み込もうとすると、 (gflags で有効な sls を使用して) これらのマニフェストを無視し、定義して使用するとLoadLibraryEx("bar.dll", NULL, 0)
、検索パスにある bar.dll の最初のバージョンを読み込むことがわかります。は適切なバージョンですが、これは の動作には影響しません。 は DLL の読み込みを遅らせるために暗黙的に使用されるため、適切なバージョンを読み込む必要があります。このように動作するはずですか、それとも私のプロジェクト構成に問題がありますか?ISOLATION_AWARE_ENABLED
LoadLibrary
ISOLATION_AWARE_ENABLED
LoadLibraryEx
LoadLibraryEx
LoadLibraryEx
LoadLibraryEx
foo dll
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="foo" version="0.1.2.3" type="win32"/>
<dependency>
<dependentAssembly>
<assemblyIdentity name="bar" version="0.1.2.3" type="win32" />
</dependentAssembly>
</dependency>
<file name="foo.dll">
</file>
</assembly>
bar.dll
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="bar" version="0.1.2.3" type="win32"/>
<file name="bar.dll">
</file>
</assembly>