Take the 2-minute tour ×

Our product consists in DLLs we ship to our customers.

When providing Windows 8 versions, I noticed I couldn't link against the CRT statically otherwise applications using our DLLs don't pass the certification.

I couldn't find any document that mentions that. Does someone know why it's not possible or how to make it happen?

Our product only makes use of malloc/free and math functions. It would be so much simpler to link against CRT statically instead of requiring every application that links against us to install the proper vc redist. (and ffs why aren't vc redists deployed through the Windows Update channel?)

share|improve this question
The are distributed through Windows Update. Well, the security patches are anyway. There have been many over the past several years. Which is surely why you are being reminded about it, it ensures that Microsoft can fix a security vulnerability in their code. I don't otherwise see it explicitly listed in the requirement check list either. –  Hans Passant Jan 7 '13 at 18:49
executables built with VS2012 (no update 1) don't run on Windows 8 without installing the Visual Studio redists –  Gregory Pakosz Jan 7 '13 at 19:21
add comment

1 Answer

Windows Store apps can only be built using VS 2012 and the current CRT. The key point is that static linking of the CRT is not supported for Windows Store apps.

Here is some more information about the CRT:

Windows Store Apps, the Windows Runtime, and the C Run-Time http://msdn.microsoft.com/en-us/library/hh972425.aspx

Here are the list of UNSUPPORTED crt routines: http://msdn.microsoft.com/en-us/library/hh674596.aspx

Rob Caplan writes here:


"If your lib links to a Metro style app compliant C runtime you will be able to call standard C functions such as fopen. You can test against the App Cert Kit to confirm. Runtimes older than VC 2012 's will not work.

Your app will still be subject to the security sandbox and won't have access directories outside of its app data and package."

share|improve this answer
does it mean it's ok to link against the CRT statically (/MT) when you want to build a desktop app? –  Gregory Pakosz Jan 8 '13 at 7:31
add comment

Your Answer


