I have a Win32 (32bit) DLL project which builds and links without error. The DLL fails to load into a 32bit process. Using DependencyWalker, I see that the DLL is 32bit but
Dependency Walker isn't using the same search path as the OS. It has its own search paths to try and find DLLs. You can view this by going to "Options -> Configure Module Search Order..."
Unfortunantly its search paths don't include "C:\Windows\SysWow64" (the location of the 32 bit version for Kernel32.dll)
This is why Dependency Walker incorrectly thinks your application is mixing x64 DLLs with your x86 application.
If you fix up the search order to include SysWow64 and remove all references to the System32 directory. This error should go away.
A better way to check which the output window of Visual Studio debugger or WinDbg when your application is run. It will list out the DLL's full path as they're loaded.