After reading the first 4 solutions, here's some information to help you...it has to do with the DLL Search Path
As the article says, the typical search order is
1.The directory from which the application loaded.
2.The current directory.
3.The system directory. Use the GetSystemDirectory function to get the path of this directory.
4.The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched.
5.The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.
6.The directories that are listed in the PATH environment variable. Note that this does not include the per-application path specified by the App Paths registry key. The App Paths key is not used when computing the DLL search path.
So, as you see, it looks in the app directory first, and in your case, didn't find it. Then it looks in the current directory - but still didn't find it, and so on.
Since you gave the full path, it probably found your NAMED DLL, but couldn't find the dependency DLLs becuase if follows the DLL Search algorithm.
However, if you put your EXE in the DLL directory (not generally a good idea) it finds your DLL and all the dependencies (becuse the directory from which the app loaded contains all the needed DLLs).
If you put your dll in the app directory, it finds it, but not the dependent DLLs.
Hope this helps you - be sure to read the entire article.