I'm working on a DirectShow filter using the Media SDK. Of course I'm linking with libmfx.lib. It seems to me that libmfx.lib uses 3 methods to locate the libmfxsw32.dll:
(1) If the Intel Media SDK is installed, it loads the file from there.
(2) Or it looks in the path the current process (exe) is started from.
(3) Or it uses the windows search path.
In my case I'd like to distribute the libmfxsw32.dll in the directory of my DirectShow filter, which is *not* in the windows search path, and which also doesn't match the exe start path. So in my situation it seems that libmfx.lib isn't able to find libmfxsw32.dll at all. That's a problem.
I'd like to suggest that you improve libmfx.lib to fix this problem. IMHO the very *first* location you should check is the path your own module (the one libmfx.lib was linked into) is stored in. If you're not sure how to find out into which module you're linked, here's how: Call "VirtualQuery(addressOfOneOfYourOwnFunctions)". You'll find the module handle in "mbi.AllocationBase" afterwards.