Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VS 2012 - XP Issues

I installed VS 2012 Professional and the XP update as well. I built my project with v110_xp as the platform toolset on VS 2012. My project's .msi package is installing fine on Win 7 but failing on Win XP SP3. The error reported on XP SP3 is -

"The procedure entry point FlushProcessWriteBuffers could not be located in the dynamic link library Kernel32.dll".

While the same project built from VS 2005 is installing fine on XP SP3. I am not sure what is going on VS 2012. _WIN32_WINNT is set to 0x0501. Can some one please guide as how to resolve the problem ?

Any help is highly appreciated,

Mahesh.

like image 240
Mahesh Avatar asked Dec 09 '12 20:12

Mahesh


People also ask

Does Visual Studio 2012 support Windows XP?

Hardware requirements Visual studio 2012 may not work on Windows XP Or Windows Vista. You need windows 7, Windows 8, Windows Server 2008 R2 Or Windows Server 2012.

What was the biggest problem of Windows XP?

Security issues. Windows XP has been criticized for its vulnerabilities due to buffer overflows and its susceptibility to malware such as viruses, trojan horses, and worms.

Does Visual Studio work on Windows XP?

Official support for the following operating systems and versions of Visual Studio was discontinued in January 2017: Windows Vista. Windows XP SP3.


2 Answers

Yes, the C Runtime has a dependency on FlushProcessWriteBuffers(). The updated version of msvcrt110.dll and libcmtl.lib, the ones you got along with the update, no longer directly link to the function, they use GetProcAddress() to find it and limp along if it is missng. So you should never get this error.

So very high odds that you deployed the wrong version of msvcrt110.dll, an old one instead of the updated one. You can find it back in c:\windows\system32, look at the properties. Mine is version 11.00.51106.1, dated 11/5/2012. A separate installer is available for it here.

like image 198
Hans Passant Avatar answered Oct 19 '22 02:10

Hans Passant


The VS2012 runtime that you are installing uses functions that are not present available in XP. See this MS article: Targeting Windows XP with C++ in Visual Studio 2012 which explains more and provides some workarounds.

Update 1 for VS2012 resolve the problem.

But Update 1 isn’t just about new Windows platforms. It also enables you to target Windows XP with native C++ applications in Visual Studio 2012.

If you are building with update 1 and still encountering problems then I suspect that you are installing an out of date runtime. You need to deploy the runtime delivered with update 1.

like image 43
David Heffernan Avatar answered Oct 19 '22 02:10

David Heffernan