Q:

Executable built with VS2010 does not find DLLs in System32

I recently built a project on VisualStudio. I got an executable in the bin folder and I put all the dependencies x64 DLL in C:\Windows\System32 and all the x32 DLL in C:\Windows\SysWOW64
When I execute my executable, I get an error message This program can't start because foo.dll is missing from your computer. 
I tried to get the dependencies with ldd.exe on Cygwin, but I don't see any references to foo.dll. I also tried to execute from PowerShell Start-Process -PassThru sample.exe, but I still get the same error message. 
Where does Windows executables look for DLLs? 
I've read that a Windows executable will look for its dependencies in a certain order:

In the local folder
In System32 
In the %PATH%

I also read that I may need to use regsvr32.exe to register my DLL if it is located into System32.
What is the actual reality of this story?

A:

Alternatively, you can simply add the DLL files to the bin folder as well.

