Why is EXE “not a valid Win32 application” using VS2015?
<p>Building a static-lib CRTL program (ClCompile RuntimeLibrary is MultiThreaded) using Visual Studio 2015 and the default settings otherwise (<code>PlatformToolset v140</code>) it gives an error when run under Windows XP.</p>

<p>It's not about a system DLL having a symbol not being found, which is what I would expect, but a more dismissive “not a valid Win32 application”.</p>

<p>What's with the EXE that makes Windows XP not recognize it as being a program?</p>

<p>What exactly does <code>PlatformToolset v140_xp</code> vs <code>PlatformToolset v140</code> <em>do</em>, and what's the downside of using it?</p>

<pre><code>&lt;TargetRuntime&gt;Native&lt;/TargetRuntime&gt;
&lt;PlatformToolset&gt;v140&lt;/PlatformToolset&gt;
</code></pre>

<p>It is a native program, <em>not .NET</em>.  It uses the Win32 platform (32-bit).</p>