Executables built with Visual C++ 2010 do not run on Windows XP prior to SP2 - by Billy.Oneal

Status : 

  By Design<br /><br />
		The product team believes this item works according to its intended design.<br /><br />
		A more detailed explanation for the resolution of this particular item may have been provided in the comments section.


4
1
Sign in
to vote
ID 526821 Comments
Status Closed Workarounds
Type Bug Repros 3
Opened 1/24/2010 7:06:00 PM
Access Restriction Public

Description

This is similar to another bug I filed about executables not executing on Windows 2000. Basically, building an application -- even when you have selected a static build (/MT)-- with Dev10 results in an executable that works only on Windows XP SP2 and above.

What's more, there's no graceful way to handle these failures, because the errors are thrown by the Windows Loader.

On Windows 2000, I get: 
C:\Path\Program.exe is not a valid Win32 application.

On Windows XP RTM, I get:
The procedure entry point EncodePointer could not be located in the dynamic link library KERNEL32.dll. 

and on Windows XP SP1, I get:
The procedure entry point EncodePointer could not be located in the dynamic link library KERNEL32.dll. 
Sign in to post a comment.
Posted by Billy.Oneal on 1/26/2010 at 3:53 PM
Hello, Mr. Brenner.

If that's the case, then this topic in MSDN needs to be updated, as it still says the CRT supports back to Win2k :)
http://msdn.microsoft.com/en-us/library/ws0swas0(VS.100).aspx

Thanks for the head's up! Have a nice day,
Billy3
Posted by Microsoft on 1/26/2010 at 2:52 PM
Hello Billy,

Thanks for the report. This behavior is by design. The earliest operating system supported by the Visual C++ 2010 run-times is Windows XP SP2, because the CRT now has a dependency on EncodePointer. This means that installing SP2 for Windows Server 2003 should also work, according to http://msdn.microsoft.com/en-us/library/bb432254(VS.85).aspx.

Pat Brenner
Visual C++ Libraries Development
Posted by Nierburt on 1/26/2010 at 4:27 AM
On Windows Server 2003, I also get:

The procedure entry point EncodePointer could not be located in the dynamic link library KERNEL32.dll.

Could this problem be solved by installing Service pack 2 on a windows server 2003 operating system?
Posted by Microsoft on 1/25/2010 at 7:07 PM
Thanks for your feedback.

We are rerouting this issue to the appropriate group within the Visual Studio Product Team for triage and resolution. These specialized experts will follow-up with your issue.

Thank you