Coloque as DLLs de 32 bits no diretório \ Windows \ SysWOW64 e as DLLs de 64 bits no diretório \ Windows \ system32.
EDITAR:
Talvez isso ajude:
This is just an intelligent guess, but following some investigation I believe I've found the problem:
If the definition of an environment variable var1 contains another environment variable var2 and the name of var1 is alphabetically less than the name of var2 (i.e. strcmp(var1, var2) < 0), then var2 won't get expanded. This seems to be because when Windows first sets up the environment variables, they are created in alphabetical order, so var2 does not exist until after var1 has already been created (and so the expansion can't be done).
I believe this is a limitation in Windows. Really some sort of dependency check between the variables should be carried out so that they are created in the correct order. Fortunately, there is a workaround.
1) Enable 'delayed variable expansion' in the registry (see http://batcheero.blogspot.com/2007/06/how-to-enabledelayedexpansion.html)
2) Change the '%' signs around var2 to '!', e.g. "%var2%" becomes "!var2!"
I've done some limited testing on Windows 7 and this appears to fix the problem.
É daqui: link