Using WCRT

You use WCRT by making sure the WCRT include directory is searched before any default include paths, and linking with the WCRT library. On the command line this can be done with e.g.:

cl /O1 /Ic:\wcrt\include hello.c c:\wcrt\lib\wcrt.lib

If you get any errors about multiply defined symbols involving libc.lib, chances are you are using something from the Visual C runtime library which is incompatible with WCRT. Try adding '/link /nodefaultlib:libc.lib' to the command line, and see if this solves the problem.

When building the WCRT library there are a couple of defines that affect the generated code:

WCRT_USE_C_PRINTF

Makes the *printf family of functions use a WCRT implementation for output instead of the Win32API finctions. This more closely resembles the standard C handling of conversion specifiers and flags, but takes up some extra code.

WCRT_USE_GLOBALALLOC

Uses the Win32API Global* functions instead of the Heap* functions for memory management. The result is slightly smaller but presumably slower code.